DP ์๊ณ ๋ฆฌ์ฆ
- ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๊น์ด ์๊ณ ๋ฆฌ์ฆ์โจ์ฐ์ด๋ ์ํฉ์ด ๊ตฌ์ฒด์ ์ด์ง ์์โฉ
- ๋ณต์กํ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ ๋ก ๋๋ ํธ๋ ๊ธฐ๋ฒ์
- ๋ฉ๋ชจ์ด์ ์ด์
๊ธฐ๋ฒ์ ํ์ฉ -> ์ค๋ณต ๊ณ์ฐ์ ์ค์
- ๋ฉ๋ชจ์ด์ ์ด์ : ๋์ผํ ๊ณ์ฐ์ ๋ฐ๋ณตํด์ผํ๋ ๊ฒฝ์ฐ, ํ ๋ฒ ๊ณ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ค๊ฐ ๋ค์ ์
- ๋ฉ๋ชจ์ด์ ์ด์ ๊ธฐ๋ฒ์ ํ์ฉํ๊ธฐ ์ํด ๊ฐ์ ์ ์ฅํ๋ ๊ณต๊ฐ์ DP table์ด๋ผ๊ณ ํจ
- DP table์ ๋ฌธ์ ์ ์ฌ๊ท์ ์ธ ๊ตฌ์กฐ์ ๋ฐ๋ผ 1์ฐจ์ ๋ฐฐ์ด, 2์ฐจ์ ๋ฐฐ์ด ๋๋ ๊ทธ๋ํ, ํธ๋ฆฌ ๋ฑ์ผ๋ก ๋ค์ํ ํํ๋ฅผ ๊ฐ์ง ์ ์์
- ๋ฌธ์ ์ ์ฌ๊ท์ ์ธ ๊ตฌ์กฐโจ๊ด๊ณ์โฉ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํจ
๋ฌธ์ ํ ๋ ์ ๊ทผ๋ฒ
- ๋ฌธ์ ์ ์ฌ๊ท์ ์ธ ๊ตฌ์กฐ ํ์
- ์์์ผ๋ก ํํ
- ์ด๊ธฐ๊ฐ ์ฒ๋ฆฌ
์ค์ ๋ฌธ์ ์์ DP ์๊ณ ๋ฆฌ์ฆ
- ์ค์ DP๋ฅผ ์ ์ฉํ ์ ์๋์ง ํ๋จํ ๋ ์ค์ํ ๊ฒ์ ๋ฌธ์ ์ ์ฌ๊ท์ ์ธ ๊ตฌ์กฐ(๊ด๊ณ์)์ ํ์ ํ๋ ๊ฒ
- ์ฌ๊ท์ ๊ตฌ์กฐ๋ฅผ ํ์ธํ์ผ๋ฉด ์์์ผ๋ก ํํ, ์ด๊ธฐ๊ฐ ์ฒ๋ฆฌ ๋ฑ์ ์งํํ๋ฉด ๋จ
- If, ๋ฌธ์ ์ ์ฌ๊ท์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ ์ ์๋ค๋ฉด
- ๊ทธ ๋ฌธ์ ๋ DP ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๊ฐ ์๋๊ฑฐ๋, ๋ฌธ์ ๋ฅผ ์ฌํด์ํด์ ์ฌ๊ท์ ๊ตฌ์กฐ๋ฅผ ์ฐพ์ํ ํ๋ ๋ฌธ์ ์
- ๋ธ๋ฃจํธํฌ์ค → ๊ทธ๋ฆฌ๋ → DP ์์ผ๋ก ์ ๊ทผํด๋ณด์
DP ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๋ฐฉ๋ฒ
- ์ฌ๊ท์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ฐพ๊ณ , ์ฐพ์ ๊ตฌ์กฐ์ ๊ฑธ๋ง๋ DP Table์ ์์ฑ.
- DP table์ Bottom-Up ๋ฐฉ์์ด๋ Top-Down ๋ฐฉ์์ ์ฌ์ฉํจ.
- Bottom-Up: ์์ ๋ถ๋ถ๋ถํฐ ์์ฑ, ๋ณดํต ๋ฐ๋ณต๋ฌธ ์ด์ฉ → DP table ์ ์ฒด๋ฅผ ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ
- Top-Down: ํฐ ๋ถ๋ถ(๊ตฌํ๊ณ ์ ํ๋ ๊ฐ)์ ๊ธฐ์ค์ผ๋ก ํ์ํ ๋ถ๋ถ๋ง ๊ตฌํจ, ์ฌ๊ทํจ์ ์ด์ฉ → DP table์ ์ผ๋ถ๋ง ์์ฑํด๋ ๋๋ ๊ฒฝ์ฐ
Tip! ์ฌ๊ทํจ์
- ๊ตฌ์กฐ
- Base case(๊ธฐ๋ณธ ์ผ์ด์ค): ์ฌ๊ท ํจ์๋ฅผ ์ข ๋ฃํ๋ ๋ถ๋ถ
- Recursive Case(์ฌ๊ท ์ผ์ด์ค): ์๊ธฐ ์์ ์ ํธ์ถํ๋ ๋ถ๋ถ
- ์ข ๋ฃํ๋ ๋ถ๋ถ์ ์ฝ๋(Base Case)๋ฅผ ์์ฑํ ๋๋ Recursive Case์ ๋ง์ง๋ง ๋ถ๋ถ์ด ์ด๋์ง๋ฅผ ์๊ฐํด ๋ณผ ๊ฒ
'์๊ณ ๋ฆฌ์ฆ ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (0) | 2024.07.18 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ (0) | 2024.07.18 |
[์๊ณ ๋ฆฌ์ฆ] ๋ธ๋ฃจํธ ํฌ์ค ์๊ณ ๋ฆฌ์ฆ (0) | 2024.07.18 |
[์๊ณ ๋ฆฌ์ฆ] ์์ด ์๊ณ ๋ฆฌ์ฆ & ์กฐํฉ ์๊ณ ๋ฆฌ์ฆ (0) | 2024.07.18 |
[์๊ณ ๋ฆฌ์ฆ] ๋์ ํฉ ์๊ณ ๋ฆฌ์ฆ (0) | 2024.07.18 |