isPowerfulBlog

[Solved] BOJ: 1920 | 수 찾기 본문

Algorithm

[Solved] BOJ: 1920 | 수 찾기

왕밤빵도라에몽 2024. 12. 11. 18:52
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