isPowerfulBlog
[Solved] BOJ: 1920 | 수 찾기 본문
import sys
input = sys.stdin.readline
def binary_search(arr, target, start, end):
while start <= end:
mid = (start + end) // 2
if arr[mid] == target:
return 1
elif arr[mid] > target:
end = mid - 1
else:
start = mid + 1
return 0
if __name__ == "__main__":
n = int(input())
n_list = sorted(list(map(int, input().split())))
m = int(input())
m_list = list(map(int, input().split()))
for m_item in m_list:
if m_item > n_list[-1] or m_item < n_list[0]:
sys.stdout.write(str(0) + "\n")
else:
result = binary_search(n_list, m_item, 0, len(n_list)-1)
sys.stdout.write(str(result) + "\n")
배운점 / 다시 상기한 점
- 재귀 X -> 반복문
- 매번 리스트 sling하지 않고 index만 계산하기
- 이분탐색 다시...
'Algorithm' 카테고리의 다른 글
[re-Solved] BOJ: 2164 | 카드2 (0) | 2024.12.11 |
---|---|
[re-Solved] BOJ: 10773 | 제로 (0) | 2024.12.11 |
[re-Solved] BOJ: 10828 | 스택 (0) | 2024.12.10 |
[re-Solved] BOJ: 9012 | 괄호 (0) | 2024.12.10 |
[re-Solved] BOJ: 10845 | 큐 (0) | 2024.12.10 |