[c++] BOJ 18240 :: ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋ณต์›ํ•˜๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2021. 7. 11. 22:58

๋‚œ์ด๋„ : ๊ณจ๋“œ 2 ๋ฌธ์ œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋ณต์›ํ•˜๊ธฐ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ชจ๋“  ์ •์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์”ฉ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ˆ˜์—ด A1, A2, ..., AN์ด ์žˆ๋‹ค. ๊ฐ’์ด A1์ธ ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ๋กœ ํ•˜๋Š” ํŠธ๋ฆฌ์— A2, A3, ..., AN ์„ ์ˆœ์„œ๋Œ€๋กœ ์‚ฝ์ž…ํ•˜๋ ค ํ•œ๋‹ค. N-1๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ๋งˆ๋‹ค ๋ฃจํŠธ์—์„œ ๊ทธ ๋…ธ๋“œ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๊ฐ„์„ ์˜ ์ˆ˜, ์ฆ‰ ๋…ธ๋“œ์˜ ๊นŠ์ด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ A1, A2, ..., AN์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ํ’€์ด ๊ฐ’ ๋ฐ›์œผ๋ฉด์„œ 2N(n-1)children.size() > 0) { // ์™ผ์ชฝ ์ž์‹ ์กด์žฌ Inorder(head->children[0]); } result[head->index] = idx++; if (head->children.size() > 1) { // ์˜ค๋ฅธ์ชฝ ์ž์‹ ..