๋ชจ๋ ์ ์ ๋ค์ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธ(ํ์)ํจ์ผ๋ก์จ ์ํ๋ ์๋ฃ๋ฅผ ์ฐพ๋ ๋ํ์ ์ธ ํ์๋ฐฉ๋ฒ๋ค๋ก, ํ์ํ๋ ์์๋ง ๋ค๋ฅผ ๋ฟ, ๋ชจ๋ ์๋ฃ๋ฅผ ํ๋์ฉ ํ์ธํด ๋ณธ๋ค๋ ์ ์ ๊ฐ๋ค.
๋๋น ์ฐ์ ํ์(BFS)์ ํ๋์ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ๋ชฉํํ๋ ์ ์ ๊น์ง ๊ฐ๋ ๋ฐฉ๋ฒ์ ํ์ํ ๋, ํ๋์ ์ ์ ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์ ๋ถํฐ ํ์ํฉ๋๋ค.
์ด ๋, ๊ฐ์ฅ ๋จผ์ ์ฐพ์์ง๋ ํด๋ต์ด ๊ณง ์ต๋จ๊ฑฐ๋ฆฌ์ด๋ค.
๋ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก ์ฐพ์ ๋ ์ฌ์ฉํ๋ฉฐ, ์ต์ ์ ๊ฒฝ์ฐ, ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๋ค ์ดํด๋ณด์์ผ ํ๋ค.
๊น์ด ์ฐ์ ํ์์ ํ๋์ ๊ฒฝ๋ก๋ฅผ ๋๊น์ง ํ์ํ ํ, ๋ชฉํํ ์ ์ ์ด ๋์ฐฉ์ง์ ์ด ์๋๋ผ๋ฉด ๋ค์ ๊ฒฝ๋ก๋ก ๋์ด๊ฐ๋ ํ์ ๋ฐฉ๋ฒ์ด๋ค.
๋ชจ๋ ๋ ธ๋๋ฅผ ์์ ํ ํ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง๋ง, DFS์ ๋น๊ตํ์ ๋ ์๋์ ์ผ๋ก ํ์ ์๊ฐ์ด ๋ ์ค๋๊ฑธ๋ฆฐ๋ค.
DFS | BFS | |
---|---|---|
ํ์ ๋ฐฉ๋ฒ | ํ์ฌ ์ ์ ์์ ๊ฐ ์ ์๋ ์ ๋ค๊น์ง ๋ค์ด๊ฐ๋ฉด์ ํ์ | ํ์ฌ ์ ์ ์ ์ฐ๊ฒฐ๋ ๊ฐ๊น์ด ์ ๋ค๋ถํฐ ํ์ |
์ฅ์ | 1. BFS๋ณด๋ค ์ ์ ์ ์ฅ๊ณต๊ฐ ํ์ 2. ์ฐพ๋ ๊ฐ์ด ์ข์ธก์ ์์ ์๋ก, ๊น์ ๋จ๊ณ์ ์์ ์๋ก ์ ๋ฆฌ | 1. ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ 2. ๋ ธ๋ ์๊ฐ ์ ๊ณ ๊น์ด๊ฐ ์์ ๊ฐ์ ์ฐพ์ ๋ ์ ๋ฆฌํจ |
๋จ์ | 1. ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅx 2. ๋ต์ด ์๋ ๊ฒฝ๋ก์ ๊น์ด ๋น ์ง ๊ฐ๋ฅ์ฑ์ด ์์ | 1. ๋
ธ๋์ ์๊ฐ ๋ง์ ์๋ก ํ์ํด์ผํ ๋
ธ๋๊ฐ ๋ง์์ง(๋นํจ์จ์ ) 2. Queue๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ค์์ ํ์ํ ๋ ธ๋๋ค์ ์ ์ฅ->๋ ธ๋์ ์๊ฐ ๋ง์ ์๋ก ๋ ํฐ ์ ์ฅ๊ณต๊ฐ ํ์ |
์ฌ์ฉ | ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ | ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ณ ์ถ์ ๊ฒฝ์ฐ |
๊ตฌํ ๋ฐฉ๋ฒ | Stack / ์ฌ๊ท | Queue |
๊ทธ๋ํ๊ฐ ๊ต์ฅํ ํฌ๋ค๋ฉด? => DFS
๊ทธ๋ํ์ ๊ท๋ชจ๊ฐ ์๊ณ , depth๊ฐ ์๋ค๋ฉด? => BFS
Reference: ์ฝ๋์คํ ์ด์ธ