백준 문제 링크
암기왕
- 각 정수를 array_N, array_M에 받아준다.
- array_M의 원소를 살펴보는데,
기본 이분 탐색 코드안에서
- array_M의 원소가 array_N[mid]와 같다면 break
- array_M의 원소가 array_N[mid]보다 크다면 end = mid - 1
- array_M의 원소가 array_N[mid]보다 작다면 start = mid + 1
- 반복문이 다 끝난 후 array_N[mid] 가 array_M의 원소와 같다면
1을 출력하고, 다르다면 0을 출력한다
T = int(input())
for _ in range(T):
N = int(input())
array_N = list(map(int, input().split()))
array_N.sort()
M = int(input())
array_M = list(map(int, input().split()))
for i in array_M:
start = 0
end = N-1
while start <= end:
mid = (start + end) // 2
if array_N[mid] == i:
break
elif array_N[mid] > i:
end = mid - 1
else:
start = mid + 1
if array_N[mid] == i:
print(1)
else:
print(0)