Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

작은 지식주머니

백준 5639 이진 검색 트리 본문

백준 python 기록

백준 5639 이진 검색 트리

작지 2021. 11. 13. 18:19

링크 : https://www.acmicpc.net/problem/5639

 

5639번: 이진 검색 트리

트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다

www.acmicpc.net

 

 

전방트리를 어떻게 인식하느냐가 문제였는데

 

트리 tree 배열을 입력하고 for in range(1,len(tree)) 만큼 돌려서 tree[0]보다 크다면 right 그 전그룹은 left

 

이 순서대로 재귀함수.

start > end 라면 return

import sys
sys.setrecursionlimit(10**9)

input=sys.stdin.readline

preorder = []

while True:
    a=(input().rstrip())
    if a == "":
        break
    preorder.append(int(a))



def postorder(start , end):
    if start > end:
        return
    division = end +1

    for i in range(start+1,end + 1):
        if preorder[start] < preorder[i]:
            division = i
            break

    postorder(start+1,division-1)
    postorder(division,end)
    print(preorder[start])

postorder(0,len(preorder)-1)
Comments