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
'프로그래밍 공부 > 백준 문제풀기' 카테고리의 다른 글
[Python] 여러줄 한번에 읽기 (0) | 2022.11.17 |
---|---|
[백준]1065번 - 한수 파이썬 문제풀이(2가지 방법) (0) | 2022.09.26 |
[백준] 1874: 스택 수열 문제풀이 (Python) (0) | 2022.09.23 |
백준 연습문제 1002번 풀이 (0) | 2021.12.06 |
백준 연습문제 1001번 풀이 (0) | 2021.12.06 |