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 = ' ')
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#218 백준 파이썬 [1992] 쿼드트리 - 분할정복 (0) | 2019.11.22 |
---|---|
#217 백준 파이썬 [2630] 색종이 만들기 - 분할 정복 (0) | 2019.11.22 |
#215 백준 파이썬 [1620] 나는야 포켓몬 마스터 이다솜 (0) | 2019.11.21 |
#214 백준 파이썬 [9987] 포켓몬 마스터 - 웹크롤링 (0) | 2019.11.20 |
#213 백준 파이썬 [2740] 행렬 곱셈 (0) | 2019.11.18 |