[백준] - 1920 수 찾기 (Python)

밀루·2023년 8월 12일
0

BOJ

목록 보기
20/43

문제 링크

풀이과정

맨 처음에는 이중 for문으로 풀었는데 (역시나!!) 시간초과.. 그래서 해당하는 숫자가 있는지 없는지를 이분탐색으로 구현해서 풀었다

코드

import sys

def bsearch(l1, num, left, right) :
    mid = (left+right)//2
    if left>right or mid >= len(l1):
        return 0
    if l1[mid]>num:
        r = bsearch(l1, num, left, mid-1)
    elif l1[mid]<num:
        r = bsearch(l1, num, mid+1, right)
    else:
        return 1
    return r


n = sys.stdin.readline().strip()
l1=list(map(int, sys.stdin.readline().strip().split()))
m = sys.stdin.readline().strip()
l2=list(map(int, sys.stdin.readline().strip().split()))

result = []
l1.sort()
for num in l2:
    print(bsearch(l1, num, 0, len(l1)))
profile
이밀루의 도전

0개의 댓글