본문 바로가기
코딩테스트 파이썬/백준

이진 검색 트리 ( 5639번 )

by 세용용용용 2025. 3. 31.

5639번: 이진 검색 트리

 

나의 풀이

import sys
sys.setrecursionlimit(10 ** 6)

def _make_node():
    answer = []
    while True:
        try:
            answer.append(int(sys.stdin.readline().rstrip()))
        except:
            break
    return answer

def _search(start_idx, end_idx):
    if (start_idx > end_idx):
        return

    right_start_idx = start_idx + 1
    while (right_start_idx <= end_idx):
        if (node[right_start_idx] > node[start_idx]):
            break
        right_start_idx += 1

    _search(start_idx + 1, right_start_idx - 1)
    _search(right_start_idx, end_idx)
    print(node[start_idx])
    
node = _make_node()
_search(0, len(node) - 1)

 

시간 복잡도

재귀 탐색
_search() : n번 탐색 ( 선형 시간 복잡도 )
    while (right_start_idx <= end_idx) : right_start_idx 찾을떄 까지 반복 ( 선형 시간 복잡도 )

해당 파이썬 알고리즘 시간 복잡도 : 이차형 시간 복잡도 ( O(n ** 2) )

'코딩테스트 파이썬 > 백준' 카테고리의 다른 글

아기 상어 ( 16236번 )  (0) 2025.04.05
숨바꼭질 2 ( 12851번 )  (0) 2025.04.05
후위 표기식 ( 1918번 )  (0) 2025.03.30
웜홀 ( 1865번 )  (0) 2025.03.30
플로이드 ( 11404번 )  (0) 2025.03.27