백준 5639 - 이진 검색 트리 (파이썬)

Updated:

Answer

import sys

sys.setrecursionlimit(10 ** 9)
input = sys.stdin.readline

preorder = []

while True:
    try:
        preorder.append(int(input()))
    except:
        break

def postorder(left, right):
    if left > right:
        return

    mid = right + 1

    for i in range(left + 1, right + 1):
        if preorder[left] < preorder[i]:
            mid = i
            break

    postorder(left + 1, mid - 1)
    postorder(mid, right)
    print(preorder[left])

postorder(0, len(preorder) - 1)

Categories:

Updated: