https://www.acmicpc.net/problem/10815
완전탐색일 경우 O(M)*O(N)
M개의 주어진 정수에 대해 각각 N번의 검사 필요 (500,000*500,000)→250,000,000,000 (시간초과 발생 예상)
이분탐색일 경우 O(M)*O(log(N))
시간초과 방지를 위해 이분탐색으로 풀기
"""
5
6 3 2 10 -10
8
10 9 -5 2 3 4 5 -10 """
N=int(input())
cards= sorted(list(map(int,input().split()))) #정렬
M=int(input())
nums=list(map(int,input().split()))
def isin(num):
lo=0
hi=N-1
mid=lo+hi//2
while lo<=hi:
# print(f'lo:{lo} hi:{hi} mid:{mid}' )
if cards[mid]==num:
return True
elif cards[mid]>num:
hi=mid-1
elif cards[mid]<num:
lo=mid+1
mid=(lo+hi)//2
return False
for num in nums:
if isin(num):
print(1,end=' ')
else:
print(0,end=' ')
다음엔 파이썬 이분탐색 bisect 모듈로 푸는 연습을 해야겠다.