- 문제 : 숫자 카드
- 난이도 : 실버 5
- 언어 : Python
- 문제 링크 : https://www.acmicpc.net/problem/10815
def search(t, l, r):
global num_lst
global target_num
global ans
while l <= r:
m = (l + r) // 2
if num_lst[m] == t:
ans.append(1)
return
elif t < num_lst[m]:
search(t, l, m - 1)
return
else:
search(t, m + 1, r)
return
ans.append(0)
return
N = int(input())
num_lst = list(map(int, input().split()))
M = int(input())
target_num = list(map(int, input().split()))
num_lst.sort()
ans = []
for i in target_num:
search(i, 0, N - 1)
print(*ans)
이분탐색을 이용한 풀이 (이분탐색의 기본은 정렬 된 배열이어야 한다.)
'BOJ' 카테고리의 다른 글
[백준 1260 / 파이썬 풀이] DFS와 BFS (0) | 2023.03.20 |
---|---|
백준 6603. 로또 [Python] (0) | 2022.06.14 |
백준 15657. N과 M (8) [Python] (0) | 2022.06.04 |
백준 15656. N과 M (7) [Python] (0) | 2022.06.04 |
백준 15655. N과 M (6) [Python] (0) | 2022.06.04 |