https://www.acmicpc.net/status?user_id=bellboy78&problem_id=1920&from_mine=1
import sys
input = sys.stdin.readline
N = int(input())
N_array = list(map(int,input().split()))
M = int(input())
M_array = list(map(int,input().split()))
N_array.sort()
my_array = [ 0 for i in range(M)]
for i in range(M):
left = 0
right = len(N_array) -1
while left <= right:
middle = (left+right)//2
if M_array[i] < N_array[middle]:
right = middle - 1
elif N_array[middle] < M_array[i]:
left = middle + 1
else:
my_array[i] = 1
break
for i in my_array:
print(i)
위 문제에서 어려웠던점
시간 초과
처음엔 sys.stdin.readline으로 시간을 줄이고
for문 반복인 시간 복잡도 NM 이 아닌 MlogN으로 이진 탐색을 이용해서 문제를 해결