DFS & Backtracking โ
๊น์ด ์ฐ์ ํ์(Depth First Search) โ
์ฌ๊ทํจ์
๋ฅผ ์ด์ฉ์กฐ๊ฑด์ ๋๋ฌํ๋ฉด ํจ์๋ฅผ ๋ฆฌํด
ํ๋ฉด์ ์คํ์ ์์ธ ํจ์๋ฅผ ์ํํด๋ธ๋ค.- ๊ฐ๋ฅ ์ฌ๋ถ/์ต์ ์ ๊ฒฝ๋ก๋ฅผ ํ์์์ ์ฌ์ฉ
ํจ์จ์ฑ ๋์ด๋ ๋ฐฉ๋ฒ โ
- ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ
- ๊ฒฝ๋ก๋ฅผ ํ์ ํ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํ์ด์ฃผ๋ ๋ฐฉ๋ฒ
- ๊ฒฝ๋ก๋ฅผ ํ์ํ ๋ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํด์ฃผ์ด ์ค๋ณต ๋ฐฉ๋ฌธ์ ๋ง๋ ๋ฐฉ๋ฒ
- ๋ฐฑํธ๋ํน์ ์ด์ฉํ ๋ฐฉ๋ฒ
DP
๋ฅผ ์ด์ฉํ์ฌ ์ต์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด ์กด์ฌ
์ฃผ์ โ
์กฐ๊ฑด์ ์ ์ ํ๊ฒ ๋ฃ์ง ์์ผ๋ฉด ๋งค์ฐ ๋ง์ depth๊ฐ ์๊ธฐ๊ฒ๋๊ณ ์ด๊ฒ์ Stack overflow๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ฐฑํธ๋ํน(Backtracking) โ
ํด๋ฅผ ์ฐพ์๊ฐ๋ ๋์ค, ํ์ฌ ๊ฒฝ๋ก๊ฐ ํด๊ฐ ๋์ง ์๊ฑฐ๋ ๋ ์ ์๋ค๋ฉด ๋์ด์ ๊ฐ์ง์๊ณ ๋์๊ฐ๋ ๊ฒ์ ๋งํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ์ฝ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๋ ํ์๋ฅผ ์ค์ด๋ฏ๋ก์จ ์๊ฐ๋ณต์ก๋๋ฅผ ์ค์ผ ์ ์๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ง์น๊ธฐ๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ๋ถํ์ํ ๊ฒฝ์ฐ์ ์๋ฅผ ์ค์ด๊ณ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ ์ ์๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋งํฉ๋๋ค.
๋ณดํต ๋ฐฑํธ๋ํน์ DFS์ ํจ๊ป ์ฌ์ฉ๋๊ณ , ๊ฐ์ง์น๊ธฐ๋ฅผ ์ผ๋ง๋ ์ํ๋๋์ ๋ฐ๋ผ์ ํจ์จ์ฑ์ด ๊ฒฐ์ ๋๊ธฐ๋ํจ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋๊ฐ๋ ์๊ฐ ๋ถ์กฑํ์์ด ๋ฐ์ํ๋ค๋ฉด ์ด ๋ถ๋ถ์ ๊ณ ๋ คํด์ ๋ค์ ๊ตฌํํด๋ณด๋๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
๋ํ ๋ฌธ์ โ
- leetcode : 79. Word Search :: ํ์ด
- leetcode : 39. Combination Sum :: ํ์ด