https://www.acmicpc.net/problem/10816
import sys
input = sys.stdin.readline
n = int(input().rstrip())
n_card = input().rstrip().split()
m = int(input().rstrip())
m_card = input().rstrip().split()
sangun_card = {}
for card in n_card:
if card in sangun_card:
sangun_card[card] += 1
else:
sangun_card[card] = 1
answer = []
for num_card in m_card:
answer.append(sangun_card.get(num_card, 0)) # get은 값이 key가 있으면 value를 출력하고 key가 없으면 디폴트 값으로 두번째 인자를 출력한다.
print(*answer) # 리스트 내의 값 출력
딕셔너리의 get은 값이 key가 있으면 value를 출력하고 key가 없으면 디폴트 값으로 두번째 인자를 출력한다.
from sys import stdin
n = stdin.readline().rstrip()
card = list(map(int,stdin.readline().split()))
m = stdin.readline().rstrip()
test = list(map(int,stdin.readline().split()))
card.sort() # 이분 탐색을 위한 정렬
def binary_search(array, target, start, end):
if start > end:
return None
mid = (start + end) // 2
if array[mid] == target:
return array[start:end+1].count(target)
elif array[mid] < target:
return binary_search(array, target, mid+1, end)
else:
return binary_search(array, target, start, mid-1)
for i in range(len(test)):
a = binary_search(card, test[i], 0, len(card)-1)
if a is not None:
print(a, end=' ')
else:
print(0, end=' ')