본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#216 백준 파이썬 [10816] 숫자 카드 2

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

 

 

#Solution

이분 탐색으로 푸는 방법보다 dict 파일 안에 숫자를 더하여 key를 기반으로 찾는 방법을 선택했다.

M의 숫자가 더 크다면 dict 또한 이분 탐색으로 하는 게 더 편하겠지만 충분히 풀 수 있음으로 사용하지 않았다.

N = int(input())
N_list = list(map(int, input().split()))
M = int(input())
M_list = list(map(int, input().split()))

#숫자 별로 count 해준다
N_count = {}
for n in N_list:
    try:
        N_count[n] += 1
    except:
        N_count[n] = 1

#Dict형식을 이용하면 빠르게 찾을 수 있다
answer = []
for m in M_list:
    try: 
        answer.append((N_count[m]))
    except:
        answer.append(0)

for i in answer:
    print(i, end = ' ')