반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

부품 찾기 본문

반응형

 

내 풀이(이진 탐색을 어이없게 구현하지 못함)

# 이진 탐색
def binary(ary, target, start, end):
    left = start
    mid = (start + end) // 2
    right = end
    
    if left > right:
        return "no"
    
    if target == ary[mid]:
        return "yes"
    elif target < ary[mid]:
        return binary(ary, target, left, mid-1)
    else:
        return binary(ary, target, mid+1, right)

n = int(input())
ary = list(map(int, input().split()))
ary.sort()

m = int(input())
chk = list(map(int, input().split()))

answer = []
for i in range(m):
    answer.append(binary(ary, chk[i], 0, n-1))
    
for i in range(m):
    print(answer[i], end = " ")

이진 탐색에 대해서 완벽하게 이해 한 줄 알았는데, 막상 구현해보니까 사소한 것을 빼먹었었다. 각 조건을 체크하고 return을 해줘야 했는데, 이것을 빼 먹었다.

 

이 문제는 집합에 번호를 1로 만들고 체크하는 방식으로도 풀 수 있다.

반응형

'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글

다이나믹 프로그래밍  (0) 2022.06.20
떡볶이 떡 만들기  (0) 2022.06.16
트리(sys 라이브러리)  (0) 2022.06.15
이진 탐색  (0) 2022.05.30
두 배열의 원소 교체  (0) 2022.05.29
Comments