[파이썬] 10816

문제 링크: 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=' ')

-> 타임아웃