diff --git "a/_posts/algorithm/\355\212\270\353\246\254\354\235\230-\354\210\234\355\232\214/2023-10-29-\354\235\264\352\260\200\354\235\200-\355\212\270\353\246\254\354\235\230-\354\210\234\355\232\214.md" "b/_posts/algorithm/\355\212\270\353\246\254\354\235\230-\354\210\234\355\232\214/2023-10-29-\354\235\264\352\260\200\354\235\200-\355\212\270\353\246\254\354\235\230-\354\210\234\355\232\214.md"
new file mode 100644
index 0000000..618fd34
--- /dev/null
+++ "b/_posts/algorithm/\355\212\270\353\246\254\354\235\230-\354\210\234\355\232\214/2023-10-29-\354\235\264\352\260\200\354\235\200-\355\212\270\353\246\254\354\235\230-\354\210\234\355\232\214.md"
@@ -0,0 +1,83 @@
+---
+title: ๐ข ํธ๋ฆฌ์ ์ํ
+author: gani0325
+date: 2023-10-29 20:00:00 +09:00
+categories: [์๊ณ ๋ฆฌ์ฆ, ํธ๋ฆฌ์ ์ํ]
+tags: [์๊ณ ๋ฆฌ์ฆ, ๋ฐฑ์ค, ๊ณจ๋1, ์ฌ๊ท, 5์ฃผ์ฐจ, ์ด๊ฐ์]
+render_with_liquid: false
+---
+
+## 1. ๋ฌธ์ ๋งํฌ
+
+[16509๋ฒ: ํธ๋ฆฌ์ ์ํ](https://www.acmicpc.net/problem/2263)
+
+
+
+## 2. ์ฝ๋
+
+`Python3` `72364KB` `412ms`
+
+```python
+"""
+[2263] ํธ๋ฆฌ์ ์ํ
+
+๐ ๋ฌธ์
+n๊ฐ์ ์ ์ ์ ๊ฐ๋ ์ด์ง ํธ๋ฆฌ์ ์ ์ ์ 1๋ถํฐ n๊น์ง์ ๋ฒํธ๊ฐ ์ค๋ณต ์์ด ๋งค๊ฒจ์ ธ ์๋ค.
+์ด์ ๊ฐ์ ์ด์ง ํธ๋ฆฌ์ ์ธ์ค๋์ ํฌ์คํธ์ค๋๊ฐ ์ฃผ์ด์ก์ ๋, ํ๋ฆฌ์ค๋๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
+
+๐ ์
๋ ฅ
+์ฒซ์งธ ์ค์ n(1 โค n โค 100,000)์ด ์ฃผ์ด์ง๋ค.
+๋ค์ ์ค์๋ ์ธ์ค๋๋ฅผ ๋ํ๋ด๋ n๊ฐ์ ์์ฐ์๊ฐ ์ฃผ์ด์ง๊ณ ,
+๊ทธ ๋ค์ ์ค์๋ ๊ฐ์ ์์ผ๋ก ํฌ์คํธ์ค๋๊ฐ ์ฃผ์ด์ง๋ค.
+
+๐ ์ถ๋ ฅ
+์ฒซ์งธ ์ค์ ํ๋ฆฌ์ค๋๋ฅผ ์ถ๋ ฅํ๋ค.
+"""
+
+# 1) ํ์์ํ์์ ๋ง์ง๋ง์ ์ค๋ ๊ฐ์ ํธ๋ฆฌ์ ๋ฃจํธ
+# 2) ์ค์์ํ์์ ๋ฃจํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ์ ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ
+# 3) ํ์์ํ๋ฅผ ์ค์์ํ์ ๊ฐ์ด ๋๋ ํ ๊ฐ ์๋ธ ํธ๋ฆฌ์์ ๋ง์ง๋ง์ ์ค๋ ๊ฐ์ ์๋ธ ํธ๋ฆฌ์ ๋ฃจํธ
+
+# ํ์ด์ฌ์ ์ฌ๊ท ์ต๋ ๊น์ด์ ๊ธฐ๋ณธ ์ค์ ์ด 1,000ํ ์ด๊ธฐ ๋๋ฌธ์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์
+import sys
+sys.setrecursionlimit(10**9)
+input = sys.stdin.readline
+
+n = int(input())
+inorder = list(map(int, input().split()))
+postorder = list(map(int, input().split()))
+
+# inorder์ ๊ฐ index ๋ฆฌ์คํธ
+inorder_pos = [0] * (n+1)
+
+def preorder(inorder_s, inorder_e, postorder_s, postorder_e):
+ # ์ฌ๊ทํจ์ ์ข
๋ฃ ์กฐ๊ฑด
+ if (inorder_s > inorder_e) or (postorder_s > postorder_e):
+ return
+
+ # ํ์ ์ํ์ ๋ง์ง๋ง ๋
ธ๋ ์ถ๋ ฅ
+ p = postorder[postorder_e]
+ print(p, end =' ')
+
+ # ์ผ์ชฝ ์๋ธํธ๋ฆฌ ๋
ธ๋์ ๊ฐ์
+ left = inorder_pos[p] - inorder_s
+
+ # ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ๋
ธ๋์ ๊ฐ์
+ right = inorder_e - inorder_pos[p]
+
+ # ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ
+ preorder(inorder_s, inorder_s+left-1, postorder_s, postorder_s+left-1)
+ # ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ
+ preorder(inorder_e - right + 1, inorder_e, postorder_e - right, postorder_e - 1)
+
+
+# ํ์์ํ์ ๋ง์ง๋ง๊ฐ์ด ์ค์์ํ ๋ช๋ฒ์งธ์ ์กด์ฌํ๋์ง ์๊ธฐ ์ํด
+for i in range(n):
+ inorder_pos[inorder[i]] = i
+
+preorder(0, n-1, 0, n-1)
+```
+
+
+
+## 3. ํด์ค