작은 지식주머니
백준 5639 이진 검색 트리 본문
링크 : 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)
'백준 python 기록' 카테고리의 다른 글
백준 10162 파이썬 전자레인지 (0) | 2021.12.07 |
---|---|
백준 파이썬 10829 이진수 변환 (0) | 2021.11.14 |
백준 10872 팩토리얼 파이썬 (0) | 2021.11.05 |
프로그래머스 완주하지 못한 선수 (0) | 2021.11.05 |
백준 15829 파이썬 Hashing (0) | 2021.11.05 |
Comments