본문 바로가기
  • 초부득3 - 어제보다 나은 내일을 위해
  • 꿈이 현실이 되는 날까지
sw사관학교 정글 2기/02 이분탐색, 분할정복, 스택, 큐, 우선순위 큐

[이분탐색] 백준 1920번 수 찾기 with Python3 ★

by 금의야행 2021. 8. 13.

https://www.acmicpc.net/problem/1920

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net

문제

 

내 풀이

from typing import Any, Sequence


def bin_search(a: Sequence, key: Any) -> int:

    pl = 0
    pr = len(a) - 1

    while True:
        pc = (pl + pr)//2
        if a[pc] == key:
            return 1
        elif a[pc] < key:
            pl = pc+1
        else:
            pr = pc - 1
        if pl > pr:
            break

    return 0


if __name__ == "__main__":
    n = int(input())
    a = list(map(float, input().split()))
    a.sort()

    n2 = int(input())
    a2 = list(map(int, input().split()))

    for i in range(len(a2)):
        ky = a2[i]

        print(bin_search(a, ky))

출처 : Do it! 파이썬

해설

책에 잇는 이진 검색법을 그대로 적용 시켜 보았다. 

 

정답 풀이

x

출처:

 

해석

 

댓글