From b0fd507dffe48061d380cc5569d67bd88ccca3c3 Mon Sep 17 00:00:00 2001 From: songyc macbook Date: Sun, 26 Apr 2026 21:41:28 +0900 Subject: [PATCH] baekjoon 20260426 --- code_study/Baekjoon/python/2263.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 code_study/Baekjoon/python/2263.py diff --git a/code_study/Baekjoon/python/2263.py b/code_study/Baekjoon/python/2263.py new file mode 100644 index 0000000..95e0c80 --- /dev/null +++ b/code_study/Baekjoon/python/2263.py @@ -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) \ No newline at end of file