์๋ง ์๋ฅ์ ๋์ปฅ ๋ถ์ด๋ฒ๋ฆฌ๊ณ , ์ฝํ ์ค๋น 4์ผ์ ์ฌ ๋์ ...
์์ฃผ ๋์จ๋ค๋ ์ ํ์ ๊ธํ๊ฒ ๊ณต๋ถํด๋ด ๋๋ค ํํ
DFS๋ Depth First Search, ๊น์ด ์ฐ์ ํ์์ ๋๋ค.
์ด๋ฆ์ฒ๋ผ ์ต๋ํ ๊น๊ฒ ํ์ํ ํ ๋ ์ด์ ๋๋ฌํ ์ ์๋ ์ํฉ์ด๋ผ๋ฉด ๋ค์ ์ด์ ์ผ๋ก ๋์๊ฐ๋๋ค.
์ค์ํ ๊ฒ์ ๊น๊ฒ ํ์ํ๊ณ ๋์ ์ด์ ๊ณผ์ ์ผ๋ก ๋์๊ฐ์ผ ํ๋ค๋ ์ ์ ๋๋ค.
DFS๋ ์ฌ๊ท(์คํ)๋ฅผ ํ์ฉํด ๊ตฌํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ฆ, ๋ฐฉ๋ฌธํ ์ ์๋ ์ง์ ์ด ์๋ค๋ฉด ๊ทธ ์ง์ ์ ๋ฐฉ๋ฌธํ๋ ํจ์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํธ์ถํ๊ณ , ๋ ์ด์ ๋ฐฉ๋ฌธํ ๊ณณ์ด ์๋ค๋ฉด ํจ์๋ฅผ ์ข ๋ฃํ๋ฉด ๋ ๊ฒ์ ๋๋ค.
๋ค๋ง, ์ด๋ฏธ ๋ฐฉ๋ฌธํ๋ ์ง์ ์ ๋ ๋ฐฉ๋ฌธํ๋ฉด ํจ์จ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ์ด์ ์ ๋ฐฉ๋ฌธํ๋ ์ง์ ์ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์์์ผ ํฉ๋๋ค.
ํ ๋ฒ ๋ฐฉ๋ฌธํ ์ง์ ์ ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํด์ ๋ ์ด์ ๋ฐฉ๋ฌธํ์ง ์๋๋ก ๋ง์์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ visited๋ผ๋ ๋ฐฐ์ด์ ํ๋ ๋ง๋ค๊ณ , ๊ทธ ๋ฒํธ์ ์ง์ ์ ๋ฐฉ๋ฌธํ ์ ์ด ์๋์ง ํ์ธํ๋ฉฐ ์งํํด์ผ ํฉ๋๋ค.
BFS๋ Breadth First Search, ๋๋น ์ฐ์ ํ์์ ๋๋ค.
์ฌ๊ท(์คํ)์ ํ์ฉํ๋ DFS์ ๋ฌ๋ฆฌ, BFS๋ ํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ๋์ ๋ ธ๋์ ๋ฐฉ๋ฌธํ๊ฒ ๋๋ฉด, ๊ทธ ๋ ธ๋์ ์ธ์ ํ ๋ ธ๋ ์ค ๋ฐฉ๋ฌธํ ์ ์ด ์๋ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๋ชจ๋ ํ์ ๋ฃ์ต๋๋ค.
์ฐ๋ฆฌ๋ ํ๊ฐ FIFO ๊ตฌ์กฐ๋ผ๋ ๊ฒ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฐ์์ผ๋ก ๋ฃ๊ฒ ๋๋ฉด ์ดํ์ ์ฒ์ ๋ฃ์๋ ๋ ธ๋์ ์ด์ ๋ ธ๋๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ฐฉ๋ฌธํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์์ฐ์ค๋ฝ๊ฒ ์ดํ์๋ ๊ฐ๊ฐ์ ์ด์๋ค์ ํ์ ๋ฃ๊ฒ ๋ ํ ๋ฐ, ์ด๋ฐ์์ผ๋ก ์งํ๋๋ฉด
์์ ๋ ธ๋์ ์ด์ -> ๊ทธ ๋ค์ ๋ ธ๋์ ์ด์ -> ๊ทธ ๋ค์ ๋ค์ ๋ ธ๋์ ์ด์
์์ผ๋ก ๋ฐฉ๋ฌธํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์์์ ์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์ ๋ถํฐ ๋ฐฉ๋ฌธํ๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด DFS์ BFS์ ์ฑ๋ฅ ์ฐจ์ด๋?
๊ฒฐ๋ก ๋ง ๋งํ๋ฉด ์ด๋ก ์ ์ผ๋ก ๋ณ ์ฐจ์ด ์๋ค๊ณ ํฉ๋๋ค.
์ด์ฐจํผ ๋ชจ๋ ๋ ธ๋์ ์ฃ์ง๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋ ์์ฒด๋ ๋ก ๋์ผํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ค์ ๋ก ์ฝ๋๋ฅผ ์ง๊ฒ๋๋ฉด DFS๊ฐ ์ฝ๊ฐ ๋๋ฆฐ ํธ์ธ๋ฐ, ๊ทธ ์ด์ ๋ ์ฌ๊ทํจ์์ ์ค๋ฒํค๋(ํจ์ ์คํ ์ ๋ฐ์ํ๋ ์๊ฐ ์ง์ฐ) ๋๋ฌธ์ ๋๋ค.
ํ์ง๋ง ํฐ ๋ฌธ์ ๋ ์๊ธฐ ๋๋ฌธ์, ์ํฉ์ ๋ฐ๋ผ ๋ ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๋ณดํต ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์๋ BFS๋ฅผ ์ฌ์ฉํฉ๋๋ค.
BFS๋ ์ ์์ ์์์ ์ผ๋ก๋ถํฐ ๊ฐ๊น์ด ์ง์ ๋ถํฐ ๋ฐฉ๋ฌธํ๊ฒ ๋๊ธฐ ๋๋ฌธ์
๊ฐ์ค์น๊ฐ ์ ๋ถ ๋์ผํ ๊ทธ๋ํ์์๋ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ํ์คํ๊ฒ ๊ตฌํด์ค ์ ์๋ ๊ฒ์ ๋๋ค.
์ถ์ฒ ์ฝ๋ํธ๋ฆฌ
'๐ ์๊ณ ๋ฆฌ์ฆ > Code Tree' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ํธ๋ฆฌ] Greedy - ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ / ๋์ ์ฐ์ต๋ฌธ์ (0) | 2023.02.22 |
---|---|
[์ฝ๋ํธ๋ฆฌ] Backtracking - ๋ฐฑํธ๋ํน / ์ฌ๊ท ์ฐ์ต๋ฌธ์ (0) | 2023.02.21 |
[์ฝ๋ํธ๋ฆฌ] TreeSet ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] Tree Set (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] Hash Set ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |