본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]10815번 숫자 카드

by 현장 2021. 9. 13.

-코드

from sys import stdin

def binary(array, target, left, right):
    mid_index = (left + right) // 2
    mid = arr[mid_index]
    if left > right:
        return 0
    if target == mid:
        return 1
    elif mid > target:
        return binary(array, target, left, mid_index - 1)
    elif mid < target:
        return binary(array, target, mid_index + 1, right)

n = int(stdin.readline())
arr = sorted(list(map(int, stdin.readline().split())))
n2 = int(stdin.readline())
arr2 = list(map(int, stdin.readline().split()))
r = []

for i in arr2:
    r.append(binary(arr, i, 0, n - 1))
print(*r)

처음에 이분 탐색인 줄 모르고 그냥 작성했으나 시간 초과가 생겨서 readline까지 사용해봤으나 되지 않아서 찾아보니 알고리즘 분류가 이분 탐색이어서 이분 탐색으로 작성을 했으나 값이 이상해서 찾아보니 sort를 안 해줘서 오류가 난 것이어서 사용하여 해결했습니다