https://www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

import sys
n = int(input())
cNum = list(map(int, sys.stdin.readline().split()))
m = int(input())
card = list(map(int, sys.stdin.readline().split()))
cNum = sorted(cNum)
answer = ''

for num in card:
    lt = 0
    rt = n - 1
    flag = 0
    while lt <= rt:
        mid = (lt + rt) // 2
        if cNum[mid] < num:
            lt = mid +1
        elif cNum[mid] == num:
            flag = 1
            break
        else:
            # cNum[lt] > num
            rt = mid -1
    answer += str(flag) + ' '
print(answer[:-1])

+ Recent posts