백준 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)