-코드
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를 안 해줘서 오류가 난 것이어서 사용하여 해결했습니다
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬]17294번 귀여운 수~ε٩(๑> ₃ <)۶з (0) | 2021.09.14 |
---|---|
[백준/파이썬]2003번 수들의 합 2 (0) | 2021.09.14 |
[백준/파이썬]7567번 그릇 (0) | 2021.09.10 |
[백준/파이썬]2729번 이진수 덧셈 (0) | 2021.09.10 |
[백준/파이썬]4539번 반올림 (0) | 2021.09.09 |