5639번: 이진 검색 트리
트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다
www.acmicpc.net
import syssys.setrecursionlimit(10 ** 9) #재귀 많이 할 수 있게
def post_order(start,end):if start>end: #기저조건returnmid = end+1 #오른쪽 트리의 루트노드 초기화for i in range(start+1,end+1):if arr[start]<arr[i]:mid = i #루트보다 커지는 지점이 오른쪽 트리의 루트노드breakpost_order(start+1, mid-1) #왼쪽 트리 방문post_order(mid, end) #오른쪽 트리 방문print(arr[start]) #끝까지 오면 노드 출력 시작
arr=[]while True: #몇개를 입력받을지 모르기때문에 try excepttry:arr.append(int(input()))except: #더이상 입력받지 않으면break
post_order(0,len(arr)-1)
'코딩 > 백준' 카테고리의 다른 글
[python] 백준 4811 알약 (1) | 2023.04.14 |
---|---|
[python] 백준 2533 사회망서비스 (0) | 2023.04.07 |
[python] 백준 15900 나무 탈출 (0) | 2023.04.07 |
[python] 백준 18126 너구리 구구 (0) | 2023.04.07 |
[python] 백준 1967 트리의 지름 (1) | 2023.04.07 |