당연히 시간 초과가 안 나게 풀어보라고 낸 문제 같았다. 그런데 도저히 떠올리지 못했고... 다른 코드들을 참고했다. 이진 탐색으로 푸는 방법과 시간초과 방법과 똑같이 풀지만 N개의 카드들을 set 혹은 dictionary로 저장하는 방법이 있다.
import sys
N = int(input())
cards = set(map(int, sys.stdin.readline().split()))
M = int(input())
finds = list(map(int, sys.stdin.readline().split()))
for i in finds:
if i in cards:
print(1, end=' ')
else:
print(0, end=' ')
import sys
N = int(input())
cards = list(map(int, sys.stdin.readline().split()))
M = int(input())
finds = list(map(int, sys.stdin.readline().split()))
dic = {}
for i in cards:
dic[i] = 1
for i in finds:
if i in dic:
print(1, end=' ')
else:
print(0, end=' ')
import sys
N = int(input())
cards = list(map(int, sys.stdin.readline().split()))
M = int(input())
finds = list(map(int, sys.stdin.readline().split()))
dic = {}
for i in finds:
dic[i] = 0
for i in cards:
if i in dic:
dic[i] = 1
for i in dic:
print(dic[i], end=' ')
import sys
N = int(input())
cards = list(map(int, sys.stdin.readline().split()))
M = int(input())
finds = list(map(int, sys.stdin.readline().split()))
cards.sort()
def binary_search(target):
low, high = 0, N-1
while low <= high:
mid = (low + high) // 2
if target == cards[mid]:
return 1
elif target > cards[mid]:
low = mid + 1
else:
high = mid - 1
return 0
for i in finds:
print(binary_search(i), end=' ')



