프로그래밍 공부/백준 문제풀기
5639번: 이진 검색 트리 파이썬 문제풀이
sh1256
2023. 2. 11. 23:12
728x90
50 30 24 5 28 45 98 52 60
입력은 root -> left -> right 순으로 들어온다.
root, left, right정하는 방법: 맨 처음 값을 root라고 정해놓고 그 다음값들은 left로 보다가 root보다 큰 값이 나오는 순간 right값들이다.
출력을 left -> right -> root 순으로 출력하면 정답.
postorder()를 재귀함수로 하여 만든다.
#BJ 5639
import sys
sys.setrecursionlimit(10**6)
def postorder(start, end):
if start>end: return
root=preorder[start]
next=start+1
while next<=end:
if preorder[next]>root:break
next+=1
postorder(start+1, next-1)
postorder(next, end)
print(root)
preorder=list(map(int,sys.stdin.readlines()))
postorder(0, len(preorder)-1)
https://ongveloper.tistory.com/295
백준 5639 이진 검색 트리 c++ (트리)
문제 출처 : https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며
ongveloper.tistory.com