๋ฌธ์ ๊ฐ๋ฏธ๊ตด ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ 14725๋ฒ: ๊ฐ๋ฏธ๊ตด ์ฒซ ๋ฒ์งธ ์ค์ ๋ก๋ด ๊ฐ๋ฏธ๊ฐ ๊ฐ ์ธต์ ๋ฐ๋ผ ๋ด๋ ค์ค๋ฉด์ ์๊ฒ ๋ ๋จน์ด์ ์ ๋ณด ๊ฐ์ N๊ฐ๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1000) ๋ ๋ฒ์งธ ์ค๋ถํฐ N+1 ๋ฒ์งธ ์ค๊น์ง, ๊ฐ ์ค์ ์์์ ๋ก๋ด ๊ฐ๋ฏธ ํ๋ง๋ฆฌ๊ฐ ๋ณด๋ด์ค ๋จน์ด www.acmicpc.net ํ์ด ์ฌ๋ฌ ๊ฐ์ ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค์ ๋ ๋ฒจ ์ํ๋ก ์ถ๋ ฅํ๋ค. ์ฝ๋ #include #include #include #include using namespace std; struct Node { string name; vector children; int level; Node(string n, int l) { name = n; level = l; } }; int N; vector burrow; bool compare(Node* ..
๋์ด๋ : ๊ณจ๋ 3 ๋ฌธ์ ใทใทใทใ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์ ์ ์ด ๋ค ๊ฐ ์ด์ ์๋ ์์์ ํธ๋ฆฌ์ ๋ํด, ๊ทธ ํธ๋ฆฌ์์ ์ ์ ๋ค ๊ฐ๋ก ์ด๋ฃจ์ด์ง ์งํฉ์ ๊ณ ๋ฅด์. ์ ์ฒด ํธ๋ฆฌ์ ๊ฐ์ ๋ค ์ค ์งํฉ์ ์ํ ๋ ์ ์ ์ ์๋ ๊ฐ์ ๋ง์ ๋จ๊ฒผ์ ๋, ๋ค ๊ฐ์ ์ ์ ์ด ํ๋์ ํธ๋ฆฌ ํํ๋ก ์ด์ด์ง๊ฒ ๋๋ค๋ฉด ‘ใท’ ๋ชจ์์ด๊ฑฐ๋ ‘ใ ’ ๋ชจ์์ผ ๊ฒ์ด๋ค. ํธ๋ฆฌ์์ ‘ใท’์ ๊ฐ์์ ‘ใ ’์ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ํธ๋ฆฌ์์ ‘ใท’ ๋ชจ์, ‘ใ ’ ๋ชจ์์ ์ด๋ฃจ๋ ์ ์ ๋ค ๊ฐ์ง๋ฆฌ ์งํฉ์ ๊ฐ์๋ผ๊ณ ํ์. ์ด์ , ๋ํ์ด๋ ์ธ์์ ๋ชจ๋ ํธ๋ฆฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ ์ธ ์ข ๋ฅ๋ก ๋๋์๋ค. D-ํธ๋ฆฌ : ‘ใท’์ด ‘ใ ’์ 3๋ฐฐ๋ณด๋ค ๋ง์ ํธ๋ฆฌ G-ํธ๋ฆฌ : ‘ใท’์ด ‘ใ ’์ 3๋ฐฐ๋ณด๋ค ์ ์ ํธ๋ฆฌ DUDUDUNGA-ํธ๋ฆฌ : ‘ใท’์ด ‘ใ ’์ ์ ํํ 3๋ฐฐ๋งํผ ์๋ ํธ๋ฆฌ ์ ์ด ๋ ๋ํ์ด๋ ํธ๋ฆฌ๋ง ๋ณด..
๋์ด๋ : ๊ณจ๋ 4 ๊ฑธ๋ฆฐ ์๊ฐ : 40๋ถ ๋ฌธ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ๋ฃจํธ๊ฐ ์๋ ํธ๋ฆฌ(rooted tree)๊ฐ ์ฃผ์ด์ง๊ณ , ๊ทธ ํธ๋ฆฌ ์์ ๋ ์ ์ ์ด ์ฃผ์ด์ง ๋ ๊ทธ๋ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์(Nearest Common Anscestor)์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค. ๋ ๋ ธ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์์, ๋ ๋ ธ๋๋ฅผ ๋ชจ๋ ์์์ผ๋ก ๊ฐ์ง๋ฉด์ ๊น์ด๊ฐ ๊ฐ์ฅ ๊น์(์ฆ ๋ ๋ ธ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด) ๋ ธ๋๋ฅผ ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด 15์ 11๋ฅผ ๋ชจ๋ ์์์ผ๋ก ๊ฐ๋ ๋ ธ๋๋ 4์ 8์ด ์์ง๋ง, ๊ทธ ์ค ๊น์ด๊ฐ ๊ฐ์ฅ ๊น์(15์ 11์ ๊ฐ์ฅ ๊ฐ๊น์ด) ๋ ธ๋๋ 4 ์ด๋ฏ๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์์ 4๊ฐ ๋ฉ๋๋ค. ๋ฃจํธ๊ฐ ์๋ ํธ๋ฆฌ๊ฐ ์ฃผ์ด์ง๊ณ , ๋ ๋ ธ๋๊ฐ ์ฃผ์ด์ง ๋ ๊ทธ ๋ ๋ ธ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์์ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์..
๋์ด๋ : ๊ณจ๋ 4 ๊ฑธ๋ฆฐ ์๊ฐ : 20๋ถ ๋ฌธ์ ์ ํ๋ฒํธ ๋ชฉ๋ก ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์ ํ๋ฒํธ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๋ค. ์ด๋, ์ด ๋ชฉ๋ก์ด ์ผ๊ด์ฑ์ด ์๋์ง ์๋์ง๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ํ๋ฒํธ ๋ชฉ๋ก์ด ์ผ๊ด์ฑ์ ์ ์งํ๋ ค๋ฉด, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด, ์ ํ๋ฒํธ ๋ชฉ๋ก์ด ์๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์ ๊ธด๊ธ์ ํ: 911 ์๊ทผ: 97 625 999 ์ ์: 91 12 54 26 ์ด ๊ฒฝ์ฐ์ ์ ์์ด์๊ฒ ์ ํ๋ฅผ ๊ฑธ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ ํ๊ธฐ๋ฅผ ๋ค๊ณ ์ ์์ด ๋ฒํธ์ ์ฒ์ ์ธ ์๋ฆฌ๋ฅผ ๋๋ฅด๋ ์๊ฐ ๋ฐ๋ก ๊ธด๊ธ์ ํ๊ฐ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์, ์ด ๋ชฉ๋ก์ ์ผ๊ด์ฑ์ด ์๋ ๋ชฉ๋ก์ด๋ค. ํ์ด b+tree ์ฌ์ฉ ์ฝ๋ #include #include #include #include using namespace ..
๋์ด๋ : ๊ณจ๋ 2 ๊ฑธ๋ฆฐ ์๊ฐ : 1์๊ฐ ๋ฌธ์ ํธ๋ฆฌ์ ๋์ด์ ๋๋น ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์ด์งํธ๋ฆฌ๋ฅผ ๋ค์์ ๊ท์น์ ๋ฐ๋ผ ํ๊ณผ ์ด์ ๋ฒํธ๊ฐ ๋ถ์ด์๋ ๊ฒฉ์ ๋ชจ์์ ํ ์์ ๊ทธ๋ฆฌ๋ ค๊ณ ํ๋ค. ์ด๋ ๋ค์์ ๊ท์น์ ๋ฐ๋ผ ๊ทธ๋ฆฌ๋ ค๊ณ ํ๋ค. ์ด์งํธ๋ฆฌ์์ ๊ฐ์ ๋ ๋ฒจ(level)์ ์๋ ๋ ธ๋๋ ๊ฐ์ ํ์ ์์นํ๋ค. ํ ์ด์๋ ํ ๋ ธ๋๋ง ์กด์ฌํ๋ค. ์์์ ๋ ธ๋์ ์ผ์ชฝ ๋ถํธ๋ฆฌ(left subtree)์ ์๋ ๋ ธ๋๋ค์ ํด๋น ๋ ธ๋๋ณด๋ค ์ผ์ชฝ์ ์ด์ ์์นํ๊ณ , ์ค๋ฅธ์ชฝ ๋ถํธ๋ฆฌ(right subtree)์ ์๋ ๋ ธ๋๋ค์ ํด๋น ๋ ธ๋๋ณด๋ค ์ค๋ฅธ์ชฝ์ ์ด์ ์์นํ๋ค. ๋ ธ๋๊ฐ ๋ฐฐ์น๋ ๊ฐ์ฅ ์ผ์ชฝ ์ด๊ณผ ์ค๋ฅธ์ชฝ ์ด ์ฌ์ด์ ์๋ฌด ๋ ธ๋๋ ์์ด ๋น์ด์๋ ์ด์ ์๋ค. ์ด์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ผ ์ด์งํธ๋ฆฌ๋ฅผ ๊ทธ๋ฆด ๋ ๊ฐ ๋ ๋ฒจ์ ๋๋น๋ ๊ทธ ๋ ๋ฒจ์ ํ ๋น๋ ๋ ธ๋ ์ค ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ..
ํ์ํ๊ธฐ๋ฒ์ผ๋ก ๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ ๊ณ์ฐ๊ธฐ ๊ด๋ จ ์ธ์ฃผ๊ฐ ๋ค์ด์์ ํด๋ณด๋ ์ค, ์์ ์ ๋ฐฐ์ ๋ ํ์ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ธฐ์ต์ด ์๋์ ๊ฒ์ ์์ด ํผ์ ๊ตฌํํ๋ ค๋ค ๋ณด๋ ๋๋ฌด ์ด๋ ค์ ๋ค... ๊ฒ์ํด๋ณด๋๊น stack์ ์ด์ฉํด์ ํ์ํ๊ธฐ๋ฒ์ ๋ง๋๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ๋์์์ด์ ๊น๋จน์ง ์๊ธฐ ์ํด ๊ธฐ๋กํ๋ค. ํ์ ํ๊ธฐ๋ฒ ์์ ํธ๋ฆฌ ํ์ ํ๊ธฐ๋ฒ์ด๋ ๊ณ์ฐ์์์ ๊ณ์ฐ์ ์ํด ์ฌ์ฉํ๋ ํ๊ธฐ๋ฒ์ด๋ค. ์์ ์ ํจ๊ป ์ดํด๋ณด์. ์์ : 9x3+1-3%3 ์์์ด ์ฃผ์ด์ก์ ๋ ๋น์ฐ์ฐ์์ ์ฐ์ฐ์๋ก ๋๋ ํ, ๊ฐ ํญ๋ชฉ์ ํ๋์ ๋ ธ๋๋ผ๊ณ ์๊ฐํ๋ฉด ํธ๋ฆฌ ํํ๋ก ๋ง๋ค ์ ์๋ค. ์ด๋ฌํ ํธ๋ฆฌ๋ ์์์ ํธ๋ฆฌ๋ผ๋ ์๋ฃ๊ตฌ์กฐ๋ก ๋ง๋ ๊ฒ์ด๋ ์์ํธ๋ฆฌ, ์ฆ Expression Tree๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ํธ๋ฆฌ ์ํ์ ํ๊ธฐ๋ฒ ํธ๋ฆฌ๋ฅผ ์ํํ๋ ๋ฐฉ์์๋ prefix(์ ์)..
๊ทธ๋ํ ํ์ ๊ทธ๋ํ๋ฅผ ํ์ํ๋ ๊ธฐ๋ฒ์๋ ๋ํ์ ์ผ๋ก 2๊ฐ์ง๊ฐ ์๋ค. ๋๋น ์ฐ์ ํ์์ธ BFS(Breadth-First Search)์ ๊น์ด ์ฐ์ ํ์์ธ DFS(Depth-First Search)์ด๋ค. BFS BFS๋ ํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค. ์ค๋ช ํธ๋ฆฌ๋ก ์๋ฅผ ๋ค์์ง๋ง, ๋ชจ๋ ๊ทธ๋ํ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋์ํ๋ค. ๋ฃจํธ ๋ ธ๋๋ฅผ queue์ ๋ฃ๋๋ค. queue์ ๋ ธ๋๋ฅผ ํ๋ ๊บผ๋ธ ํ, ํด๋น ๋ ธ๋์์ ์ธ์ ๋ ธ๋๋ฅผ ๋ชจ๋ queue์ ๋ฃ๋๋ค. ์์ ๋ฐฉ์์ ๋ชจ๋ ๋ ธ๋๊ฐ ์๋ฃ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค. stack์ ๋ค์ด๊ฐ ์์๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 1=>2=>3=>4=>5=>6=>7=>8 ๋ฐ๋ผ์ ํธ๋ฆฌ์์ BFS๋ฅผ ์คํํ์ฌ ํ์์ ํ๋ ๊ฒ์ ๋ ๋ฒจ ์ํ๋ฅผ ํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. DFS DFS๋ ์คํ์ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค. ์ค๋ช ํธ๋ฆฌ๋ก ์๋ฅผ ๋ค..
์ต๋ ์ต์ ์ฐพ๊ธฐ ์ ํ ๋ฌธ์ ์ฃผ์ด์ง ๋ฆฌ์คํธ์ ์ต๋, ์ต์ ๊ฐ์ ์ฐพ๊ฑฐ๋ n๋ฒ์งธ ํฐ ๊ฐ, n๋ฒ์งธ ์์ ๊ฐ์ ์ฐพ๋ ๊ณผ์ ๋ ํ๋ก๊ทธ๋จ์์ ๋ง์ด ๋ฑ์ฅํ๋ค. ์ด๋ ๊ฒ n๊ฐ์ ์ซ์๋ค ์ค k๋ฒ์งธ๋ก ์์(๋๋ ํฐ) ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ๋ฅผ 'Selection problem' ์ฆ, ์ ํ ๋ฌธ์ ๋ผ๊ณ ํ๋ค. ์ต๋ ์ต์ ์ฐพ๊ธฐ ์ ํ ๋ฌธ์ ์์ ๊ฐ์ฅ ์ฌ์ด ๋ฌธ์ ๊ฐ ์ต๋ / ์ต์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ฃผ์ด์ง ๋ฆฌ์คํธ์ ์ต๋๊ฐ์ ์ฐพ๊ธฐ ์ํด์๋ ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ ๊น? ์ ๋ ฌ ๋จผ์ , ์ด์ ์ ๋ฐฐ์ ๋ ์ ๋ ฌ์ ์ด์ฉํ ์ ์๋ค. ์ ๋ ฌ ํ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ์ ธ์ค๋ฉด ์ต๋๊ฐ์ ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ค๊ฐ ์์๋ค์ ์ ๋ ฌ์ ์ต๋๊ฐ์ ์ฐพ๋๋ฐ์ ๋ถํ์ํ ๊ณผ์ ์ด๋ค. ๋ฐ๋ผ์ ์ ๋ ฌ์ ์ด์ฉํ๋ฉด ์ ๋ ฌ์ ์ต์ ์๊ฐ๋ณต์ก๋์ธ O(nlgn)๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. min/..
Comment