백준 문제 링크
숫자 카드
- 숫자카드를 각각 array_N, array_M에 받고, array_N만 정렬한다.
- 초기값 answer = [0] * M으로 지정한다.
- 기본 이분 탐색 코드에서
- array_M의 원소(array_M[i])가 array_N[mid]와 같다면
answer[i] = 1로 바꿔준다.- array_M의 원소(array_M[i])가 array_N[mid]보다 크다면
start = mid + 1- array_M의 원소(array_M[i])가 array_N[mid]보다 작다면
end = mid - 1
- 문제에서 요구하는 형식으로 answer를 출력하면 끝!
N = int(input())
array_N = list(map(int, input().split()))
M = int(input())
array_M = list(map(int, input().split()))
array_N.sort()
answer = [0] * M
for i in range(len(array_M)):
start = 0
end = N-1
while start <= end:
mid = (start + end) // 2
if array_M[i] == array_N[mid]:
answer[i] = 1
break
elif array_M[i] > array_N[mid]:
start = mid + 1
else:
end = mid - 1
print(*answer)