๐ฉ ๊ทธ๋ํ์์ ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ
stack์ ์ด์ฉํ์ฌ ๊ฐ ์ ์๋ ๋งํผ ์ต๋ํ ๊น์ด ๊ฐ๋ ๊ฒ์ด๊ณ , ๋ ์ด์ ๊ฐ ๊ณณ์ด ์๋ค๋ฉด ์ด์ ์ ์ ์ผ๋ก ๋์๊ฐ๋ค๋ ๊ฒ
์ฃผ๋ก ๋ฐ๋ณต๋ฌธ(Stack) / ์ฌ๊ท๋ฌธ(์ํ ์๊ณ ๋ฆฌ์ฆ)์ ํตํ์ฌ ๊ตฌํ๋๋ค.
๐ฉ ๋ฐฉ๋ฒ
๊ทธ๋ํ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ฐฉ๋ฌธํ ์ ์์ด์ผ ํ๊ณ , ๋ฐฉ๋ฌธํ ๋ ธ๋๋ค์ ๋ค์ ํ์ํ ์ผ์ด ์๋๋ก ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค.
1. ํ์ฌ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๊ฒ์ผ๋ก ํ์
2. ๋ฐฉ๋ฌธํ ํ์๊ฐ ๋์ด ์์ง ์์ ๊ฐ๊ฐ์ ์ธ์ ํ ์ ์ ์ ํ์
3. ๋ ์ด์ ๋ฐฉ๋ฌธํ์ง ์์ ์ ์ ์ด ์์ผ๋ฉด ์ด์ ์ ์ ์ ์ญ์ถ์
4. ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ ๋๊น์ง ํ๋ก์ธ์ค ๋ฐ๋ณต
๐ ๋ฐ๋ณต ๊ตฌํ (Stack ํ์ฉ)
1) ์์ ์ ์ A๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค. A
2) ์คํ์ ์ต์๋จ ๋
ธ๋ A๋ ๊บผ๋ด ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๋
ธ๋์ธ C, B๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค.(์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง๊ด์ ์ธ ์์๋ก ๋ํ๋ด๊ธฐ ์ํด ์ํ๋ฒณ ์ญ์์ผ๋ก ์คํ์ ์ฝ์
ํ์๋ค.) C B
3) ์คํ์ ์ต์๋จ ๋
ธ๋์ธ B๋ ๊บผ๋ด ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๋
ธ๋์ธ E, D๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค. C E D
4) ์คํ์ ์ต์๋จ ๋
ธ๋์ธ D๋ ๊บผ๋ด ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๋
ธ๋์ธ I, H๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค. C E I H
5) ์คํ์ ์ต์๋จ ๋
ธ๋์ธ H๋ ๊บผ๋ด ์ถ๋ ฅํ๋ค. ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋
ธ๋๊ฐ ์์ผ๋ฏ๋ก ์คํ์๋ ์๋ฌด๊ฒ๋ ๋ฃ์ง ์๋๋ค. C E I
6) ์ ๊ณผ์ ์ ์คํ์ ์๋ฌด๊ฒ๋ ๋จ์ง ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
๐ฉ ์๊ฐ ๋ณต์ก๋
N = ๋ ธ๋(์ ์ )์ ์, E = ๊ฐ์ ์ ์
์ธ์ ํ๋ ฌ์์ ์๊ฐ ๋ณต์ก๋ : O(N^2)
DFS ํ๋์ ๋ฐ๋ณต๋ฌธ์ V๋งํผ ๋๊ธฐ ๋๋ฌธ์, O(V) ์๊ฐ์ด ํ์ํ๋ค.
์ ์ ์ ๋ฐฉ๋ฌธํ ๋๋ง๋ค DFS๋ฅผ ๋ถ๋ฅด๋๋ฐ, V๊ฐ์ ์ ์ ์ ๋ชจ๋ ๋ฐฉ๋ฌธํ๋ฏ๋ก, ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ O(V^2)
์ธ์ ๋ฆฌ์คํธ์์ ์๊ฐ ๋ณต์ก๋ : O(N + E)
DFS ํ๋๋น ๊ฐ ์ ์ ์ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ ์ ๊ฐ์๋งํผ ํ์์ ํ๊ฒ ๋์ด DFS ํ๋์ ์ํ ์๊ฐ์ด ์ผ์ ํ์ง ์๋ค.
์ ์ฒด DFS๊ฐ ๋ค ๋๋ ์ดํ๋ฅผ ์๊ฐํด๋ณด๋ฉด, DFS๊ฐ ๋ค ๋๋ฌ์ ์์ ์๋ ๋ชจ๋ ์ ์ ์ ํ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๊ณ , ๋ชจ๋ ๊ฐ์ ์ ํ๋ฒ์ฉ ๊ฒ์ฌํ๊ฒ ๋๋ฏ๋ก O(N+E)์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ํ ์ ์๋ค.
๐ฉ ์ฅ์
ํ์ฌ ๊ฒฝ๋ก ์์ ๋ ธ๋๋ค๋ง ๊ธฐ์ตํ๋ฉด ๋๋ฏ๋ก ์ ์ฅ๊ณต๊ฐ์ด ๋น๊ต์ ์ ๊ฒ ๋ ๋ค.
๋๋น ์ฐ์ ํ์(BFS)๋ณด๋ค ์ข ๋ ๊ฐ๋จํ๋ค.
๋ชฉํ ๋ ธ๋๊ฐ ๊น์ ๋จ๊ณ์ ์์ ๊ฒฝ์ฐ ํด๋ฅผ ๋นจ๋ฆฌ ๊ตฌํ ์ ์๋ค.
๐ฉ ๋จ์
๊ฒ์ ์๋ ์์ฒด๋ BFS์ ๋นํด ๋๋ฆผ
ํด๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฌดํ ๋ฃจํ์ ๋น ์ง ์ ์๋ค.
๐ ์ค์ ์ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์ง์ ํ ๊น์ด๊น์ง๋ง ํ์ํ๊ณ , ๋ชฉํ ๋ ธ๋๋ฅผ ๋ฐ๊ฒฌํ์ง ๋ชปํ๋ฉด ๋ค์์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ํ์ํ๋ ๋ฐฉ๋ฒ์ด ์ ์ฉํ ์ ์๋ค.
์ป์ด์ง ํด๊ฐ ์ต๋จ ๊ฒฝ๋ก๊ฐ ๋๋ค๋ ๋ณด์ฅ์ด ์๋ค.
๐ ๋ชฉํ์ ์ด๋ฅด๋ ๊ฒฝ๋ก๊ฐ ๋ค์์ธ ๋ฌธ์ ์ ๋ํด DFS๋ ํด์ ๋ค๋ค๋ฅด๋ฉด ํ์์ ๋๋ด๋ฒ๋ฆฌ๋ฏ๋ก, ์ด๋ ์ป์ด์ง ํด๋ ์ต์ ์ด ์๋ ์ ์๋ค๋ ๋ป
๐ฉ ํ์ฉ
1. ๊ฒฝ๋ก์ ํน์ง์ ์ ์ฅํด๋ฌ์ผ ํ๋ ๋ฌธ์ (๊ฒฝ๋ก ์์ ๋ ธ๋๋ฅผ ๊ธฐ์ตํด์ผ ํ๋๋ฌธ์ )
2. ๊ฒ์ ๋์ ๊ทธ๋ํ๊ฐ ํฐ ๋ฌธ์
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > โจ ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฒกํฐ(Vector) (0) | 2024.04.15 |
---|---|
๋๋น ์ฐ์ ํ์(BFS) (0) | 2024.04.14 |
ํธ๋ฆฌ(Tree) (0) | 2024.04.13 |
๊ทธ๋ํ(Graph) | ์์ ์ ๋ ฌ | ์ฐ๊ฒฐ ์ฑ๋ถ (0) | 2024.04.13 |
ํ(Heap) cf.์ด์งํ์ํธ๋ฆฌ (0) | 2024.04.12 |