πŸ€–/λ°±μ€€

λ°±μ€€ 10816: 숫자 μΉ΄λ“œ 2 (Python)

sssbin 2022. 2. 10. 22:57

 

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 μΉ΄λ“œ 2

첫째 쀄에 상근이가 κ°€μ§€κ³  μžˆλŠ” 숫자 μΉ΄λ“œμ˜ 개수 N(1 ≤ N ≤ 500,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” 숫자 μΉ΄λ“œμ— μ ν˜€μžˆλŠ” μ •μˆ˜κ°€ μ£Όμ–΄μ§„λ‹€. 숫자 μΉ΄λ“œμ— μ ν˜€μžˆλŠ” μˆ˜λŠ” -10,000,000보닀 ν¬κ±°λ‚˜ κ°™κ³ , 10,

www.acmicpc.net

 

μ±„μ ν•˜λŠ”λ°λ§Œ 1λΆ„ 30μ΄ˆλŠ” κ±Έλ €μ„œ λ‚˜ μ²˜μŒμ— μ‹œκ°„ 초과 λœ¨λŠ” 쀄^^,,

 

import sys

n = int(input())
card = sorted(map(int, sys.stdin.readline().split()))
m = int(input())
find = list(map(int, sys.stdin.readline().split()))

dict_card = dict()
for i in card:
    if i in dict_card:
        dict_card[i] += 1
    else:
        dict_card[i] = 1

for i in find:
    if i in dict_card:
        print(dict_card[i], end=' ')
    else:
        print(0, end=' ')

 

μ›λž˜ 이진탐색 -> 찾으면 μ•žλ’€ 인덱슀 ν™•μΈν•΄κ°€λ©΄μ„œ 같은 μ›μ†Œλ₯Ό 찾음

μ΄λ ‡κ²Œ ν•˜λ €κ³  ν–ˆλŠ”λ° λ³΅μž‘ν•˜κ³  λΉ„νš¨μœ¨μ μž„.. λ‚΄κ°€ 생각해도 이건 μ•„λ‹ˆλ‹€ μ‹Άμ—ˆλ‹€

 

λ”•μ…”λ„ˆλ¦¬λ₯Ό μ΄μš©ν•΄μ„œ {κ°’:개수} ν˜•νƒœλ‘œ μ €μž₯ν•˜κ³  값을 찾으면 개수λ₯Ό 좜λ ₯ν•˜κ²Œ ν–ˆλ‹€

이진탐색을 μ΄μš©ν•˜μ§€ μ•Šμ•„λ„ ν’€λ¦¬λŠ” λ¬Έμ œλ‹€!