열렬히.뛰기

10815번: 숫자카드

알고리즘: 실전 > 백준 단계별로 풀기: 10번 ~ 25번 > 10815번: 숫자카드

문제

숫자 카드는 정수 하나가 적혀져 있는 카드이다.

상근이는 숫자 카드 N개를 가지고 있다. 

정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.

코드

python
import sys
input = sys.stdin.readline

n = int(input())
card = list(map(int, input().split()))
m = int(input())
number = list(map(int, input().split()))

card.sort()
for i in number:
    start, end = 0, n-1
    cnt = 0
    while start <= end:
        m = (start + end) // 2
        if card[m] == i:
            cnt += 1
            break
        elif card[m] < i:
            start = m + 1
        elif card[m] > i:
            end = m - 1
    if cnt == 1:
        print(1, end = ' ')
    else: print(0, end = ' ')