import sys
sys.setrecursionlimit(10**9)
def bsr(target,start,end,data):
if start>end :
return None
mid = (start+end)//2
if data[mid]==target:
return 1
elif data[mid]>target:
end = mid -1
else:
start = mid + 1
return bsr(target,start,end,data)
n = int(input())
arr1 = list(map(int,input().split()))
m = int(input())
arr2 = list(map(int,input().split()))
arr1.sort()
for i in range(m):
if bsr(arr2[i],0,n-1,arr1):
print(1,end=' ')
else :
print(0,end=' ')
상근이가 가지고 있는 카드를 정렬 한 후 이진탐색알고리즘을 활용하여 내가 선택한 숫자를 상근이가 가지고 있는지 확인하는 문제이다.
이진탐색을 재귀로 구현안하니 시간초과라고 떴다.
그릭 인덱스 에러도 떠서 수정해주고, 재귀의 깊이를 늘려주고 돌린 결과가 재귀의 깊이를 늘리기전보다 더 빨랐다..
왠지는 모르겠다.