baekjoon 20260426

This commit is contained in:
songyc macbook 2026-04-26 21:41:28 +09:00
parent 47a227393e
commit b0fd507dff

View File

@ -0,0 +1,27 @@
import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.readline
N = int(input())
inOrder = list(map(int, input().split())) # left - root - right
postOrder = list(map(int, input().split())) # left - right - root
preOrder = [] # root - left - right
inOrderIdx = [0] * (N+1)
for i in range(N) :
inOrderIdx[inOrder[i]] = i
def find(L_in, R_in, L_post, R_post) :
if L_in > R_in or L_post > R_post :
return
root = postOrder[R_post]
root_idx = inOrderIdx[root]
left_length = root_idx - L_in
preOrder.append(root)
find(L_in, L_in + left_length - 1, L_post, L_post + left_length - 1)
find(root_idx + 1, R_in, L_post + left_length, R_post - 1)
find(0, N-1, 0, N-1)
print(*preOrder)