from typing import List
import sys
def bin_search(num: int, num_arr: List[int]) -> bool:
# start, end 초기화
start, end = 0, len(num_arr) - 1
# start가 end보다는 작거나 같을 때 까지
while start <= end:
# mid 설정
mid = (start + end) // 2
# start가 너무 작으므로 갱신
if num > num_arr[mid]:
start = mid + 1
# end가 너무 크므로 갱신
elif num < num_arr[mid]:
end = mid - 1
# 검색 성공
else:
return True
# 검색 실패
return False
if __name__ == "__main__":
n = int(sys.stdin.readline())
a = sorted(list(map(int, sys.stdin.readline().split())))
m = int(sys.stdin.readline())
b = list(map(int, sys.stdin.readline().split()))
for num in b:
print(1 if bin_search(num, a) else 0)
기본적인 이분 탐색 문제
파이썬 in
연산 사용하면 시간초과가 날 수 밖에 없다...