-
코드
import sys sys.setrecursionlimit(10**8) n = int(input()) in_order = list(map(int, input().split(" "))) post_order = list(map(int, input().split(" "))) position = [0] * (n+1) for i in range(n): position[in_order[i]] = i def pre_order(in_start, in_end, post_start, post_end): if in_start > in_end or post_start > post_end: return root = post_order[post_end] print(root, end=" ") pre_order(in_start, position[root]-1, post_start, post_start+position[root]-in_start-1) pre_order(position[root]+1, in_end, post_start+position[root]-in_start, post_end-1) pre_order(0,n-1, 0,n-1)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 4803번 트리 (파이썬) (0) 2022.01.05 [백준] 5639번 이진 검색 트리 (파이썬) (0) 2022.01.05 [백준] 1991번 트리 순회 (파이썬) (0) 2022.01.05 [백준] 1967번 트리의 지름 (파이썬) (0) 2022.01.05 [백준] 1167번 트리의 지름 (파이썬) (0) 2022.01.05