[BOJ] 1920

stanley.·2022년 9월 28일
0

알고리즘

목록 보기
5/9

1920번

#이진 탐색을 하기 전에는 반드시 자료를 미리 정렬해야 한다.
def binary_search(a, x):
    start = 0
    end = len(a) - 1

    while start <= end:
        mid = (start + end) // 2
        if a[mid] > x:
            end = mid - 1
        elif a[mid] < x:
            start = mid + 1
        elif a[mid] == x:
            return 1
    return 0


n = int(input())
a = list(map(int, input().split()))
a.sort()

m = int(input())
nums = list(map(int, input().split()))

for i in range(m):
    #이진 탐색 대상 배열과 비교할 값을 가진 배열의 길이만큼 비교한다.
    print(binary_search(a, nums[i]))

나가면서

위 문제는, 비교를 함에 있어서 이중 반복문을 사용하게 될 경우 런타임 에러가 발생합니다.
따라서, 배열 요소를 비교함에 있어서 효율적인 방식인 이진 탐색 알고리즘을 활용하여 문제를 해결할 수 있었습니다.
이진 탐색 알고리즘 내용에 대해서도 포스팅을 한번 하도록 하겠습니다.

profile
🖥 Junior Developer.

0개의 댓글