포도가게의 개발일지

python 백준 1655번 수찾기(이분탐색) 본문

백준

python 백준 1655번 수찾기(이분탐색)

grape.store 2021. 8. 15. 20:24
반응형

1. 이분탐색을 이용한 수 찾기(정렬이 되있을 때 만 이진탐색이 가능하다)

import sys

def binary(start, end, target):
    global ans
    if abs(end - start) < 1:
        return
    
    mid = (start+end)//2
    #print(start,mid, end,target)
    #print(arr, arr[mid], target)
    if arr[mid] == target:
        ans = 1
        #print('target done')
        return
        
    if target < arr[mid]:
        binary(0, mid,target)
    if target > arr[mid]:
        binary(mid+1, end,target)


num1 = int(sys.stdin.readline())
arr=[]
for repeat1 in map(int,sys.stdin.readline().split()):
    arr.append(repeat1)
set(arr)
arr.sort()
num2 = int(sys.stdin.readline())
for target in map(int,sys.stdin.readline().split()):
    ans = 0
    binary(0, len(arr), target)
    print(ans)

'백준' 카테고리의 다른 글

python 백준 2110번 공유기 설치  (0) 2021.08.15
python 백준 2805번 나무자르기  (0) 2021.08.15
python 백준 2468번 안전영역  (0) 2021.08.11
백준 10971번 외판원의 순회 2  (0) 2021.08.10
백준 03일차  (0) 2021.08.09
Comments