문제 링크: https://www.acmicpc.net/problem/10816
import sys
input = sys.stdin.readline
N = int(input()) # 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N
# 숫자 카드에 적혀있는 정수
arr = list(map(int, input().split()))
M = int(input())
# 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수
search = list(map(int, input().split()))
arr.sort()
def binary_search(target, data, start, end):
if start > end:
return None
mid = (start+end) // 2
if data(mid) == target:
return data(start:end+1).count(target)
elif data(mid) < target:
return binary_search(target, data, mid+1, end)
else:
return binary_search(target, data, start, mid-1)
for i in range(len(search)):
k = binary_search(search(i), arr, 0, len(arr)-1)
if k is not None:
print(k, end=' ')
else:
print(0, end=' ')
-> 타임아웃