๋ฌธ์ https://leetcode.com/problems/minimum-depth-of-binary-tree/description/ ์ฃผ์ด์ง ์ด์งํธ๋ฆฌ์์ ํธ๋ฆฌ์ ์ต์ ๊น์ด๋ฅผ ๊ตฌํ์ฌ๋ผ. ์ต์ ๊น์ด๋ ๋ฃจํธ ๋
ธ๋๋ถํฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฆฌํ ๋
ธ๋๊น์ง ๋ด๋ ค๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ์ ์๋ ๋
ธ๋์ ์์ด๋ค. Note: ๋ฆฌํ ๋
ธ๋๋ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ค. ํ์ด 1. BFS - ๋๋น ์ฐ์ ํ์ fun minDepth(root: TreeNode?): Int { if(root == null) return 0 val q = ArrayDeque() q.add(root) var depth = 1 while (q.isNotEmpty()) { val curSize = q.size repeat(curSize) { val curNode = q..
๐ ์๊ณ ๋ฆฌ์ฆ/Tree
๋ฌธ์ (Gold 1) https://www.acmicpc.net/problem/2233 2233๋ฒ: ์ฌ๊ณผ๋๋ฌด ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 2,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ๋ฒ๋ ๊ฐ ๋ง๋๋ 2×N์๋ฆฌ์ ์ด์ง์๊ฐ ์ฃผ์ด์ง๋ค. ์
์งธ ์ค์๋ ์ฉ์ ์ฌ๊ณผ์ ์์น๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ X, Y๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ 2×N์๋ฆฌ www.acmicpc.net ํ์ด ํธ๋ฆฌ๋ ์ด๋ ต๋ค!!!!!!!!!!!!!!!!! ์ ์ฒด ๋ก์ง 1. parent ๋ฐฐ์ด๊ณผ root ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ Stack์ ์ด์ฉํ์ฌ ํธ๋ฆฌ ๋ง๋ค๊ธฐ ์ด์ง ๋ฐฐ์ด์ ๋น๊ตํ๋ฉฐ ์ญ์ ํ๊ณ ์ ํ๋ ๋
ธ๋์ '์ค์ ์ธ๋ฑ์ค' ๊ตฌํ๊ธฐ 2. ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์ ๊ตฌํ๊ธฐ parent๋ฐฐ์ด์ ์ฌ์ฉํ ์ฌ๊ท ๊ธฐ์ ์กฐ๊ฑด: ๋ฃจํธ๊น์ง ์์ ๊ฒฝ์ฐ or ๋ค๋ฅธ ๋
ธ๋๊ฐ ์ด๋ฏธ ๋ฐฉ๋ฌธ ํ๋ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒฝ์ฐ ๋ก..
๋ฌธ์ (Gold 3) https://www.acmicpc.net/problem/4933 4933๋ฒ: ๋ดํด์ ์ฌ๊ณผ ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ๋ํด์, ๋ ํธ๋ฆฌ๊ฐ ๋๋ฑํ๋ฉด true๋ฅผ, ์๋๋ฉด false๋ฅผ ์ถ๋ ฅํ๋ค. www.acmicpc.net ํ์ด ์
๋ ฅ ๋ฐ์ ๊ฐ์ ์ด๋ป๊ฒ ํธ๋ฆฌ๋ก ๋ง๋๋๋๋ฅผ ์๊ฐํ๋ ๊ฒ์ด ๊ด๊ฑด. ์
๋ ฅ์ ํฌ์คํธ์ค๋(ํ์์ํ)๋ก ์ฃผ์ด์ง๋ค๊ณ ํ๋ stack์ ํ์ฉํ์ฌ ํธ๋ฆฌ ๊ตฌ์ฑ ํ์์ํ๋ก ์ฃผ์ด์ง ๊ทธ๋ํ์ stack ๋ณํ ๋ก์ง 1. ํ์ฌ ๋ฃ์ผ๋ ค๋ ๋
ธ๋(i)๊ฐ null์ด ์๋๊ณ , ์ด๋ฏธ ์คํ์ 2๊ฐ ์ด์ ์์ฌ์๋ค๋ฉด 2. ๋งจ ๋์ค์ ๋ฃ์ ๋
ธ๋(stack.pop())๊ฐ ์ค๋ฅธ์ชฝ ๋
ธ๋ 3. ๊ทธ ์ ์ ๋ฃ์ ๋
ธ๋(stack.pop())๊ฐ ์ผ์ชฝ ๋
ธ๋ 4. right์ left๋
ธ๋์ ๋ถ๋ชจ๋ฅผ ํ์ฌ ๋
ธ๋(i)๋ก ์ค์ 5. ํ์ฌ ..