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으로 이진 탐색을 이용해서 문제를 해결