from sys import stdin
input = stdin.readline
n = int(input())
n_list = list(map(int, input().split()))
n_list.sort()
m = int(input())
m_list = list(map(int, input().split()))
for i in m_list:
s, e = 0, len(n_list)-1
while s <= e:
mid = (s+e)//2
t = n_list[mid]
if t == i:
print(1)
break
if t > i:
e = mid -1
else:
s = mid + 1
else:
print(0)
이분탐색은 정렬된 배열에서 맞는지 아닌지로 답이 나뉘고 거기서 크다 작다로 나뉘는 경우 사용하는 알고리즘
리스트의 mid 값을 비교하며 찾고자 하는 값이 mid 값 보다 크면 시작지점을 mid + 1로 작으면 mid -1로 하여 빠르게 배열을 탐색하는 방법
이렇게 할 시 O(log n)으로 탐색이 가능하다.