문제요약
나의 코드 및 설명
n = int(input())
a = list(map(int, input().split()))
a.sort()
m = int(input())
b = list(map(int, input().split()))
result = []
for x in b:
start = 0
end = n-1
ans = False
while start <= end:
mid = (start + end) // 2
if a[mid] > x:
end = mid-1
elif a[mid] < x:
start = mid+1
else:
ans = True
break
if ans:
result.append(1)
else:
result.append(0)
print(" ".join(map(str, result)))
피드백
이전에 풀었던 이분탐색 문제와 크게 다르지 않은 문제여서 역시나 이분탐색 알고리즘을 활용하여 문제를 풀었더니 정답 판정을 받을 수 있었다. 완벽히 숙달될 수 있도록 많은 문제를 풀어봐야겠다.
'Baekjoon > 이분탐색' 카테고리의 다른 글
[백준] 2805 나무 자르기 (실버2) / 이분탐색 (0) | 2023.06.13 |
---|---|
[백준] 10816 숫자 카드 2 (실버4) / 이분탐색 (0) | 2023.05.29 |
[백준] 1920 수 찾기 (실버4) / 이분탐색 (0) | 2023.05.28 |