๐ Dynamic Programming์ ์ฌ์ฉํ๋ ๋ฌธ์
Dynamic Programming์ ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์ ํด๊ฒฐ ํ, ํด๋น ๋ถ๋ถ์ ํด๋ฅผ ์ด์ฉํด์ ๋ณด๋ค ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. memorization ๊ธฐ๋ฒ(์ด์ ์คํ์์ ๊ตฌํ ํด๋ฅผ ์ ์ฅํด๋ )์ ์ฌ์ฉํฉ๋๋ค. ์๋๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ dp ๋ฌธ์ ๋ฆฌ์คํธ ์ ๋๋ค.
๐ ํ์ด ๋ฐฉ๋ฒ ํน์ง
โ ์ฌ์ฉ๋๋ ๋ฌธ์ ์ ํ : ์์ ๊ฐ๋ถํฐ ๊ตฌํ ์ ์๋ ๋ฌธ์ . ์ฆ, ๊ฐ์ ํ๋ํ๋ ์๊ฑฐ๋ ์ฑ์๊ฐ๋ ๋ฌธ์
- dp๋ผ๋ ์ผ์ฐจ์ ๋ฐฐ์ด ๋๋ ์ด์ฐจ์ ๋ฐฐ์ด์ ์์ฐจ์ ์ผ๋ก ์คํํ ๊ฐ๋ค์ ์ฑ์ ๋ฃ์ผ๋ฉด์ ์งํํ๋ค.
- ์ฌ์ฉํ dp์ ํฌ๊ธฐ์ ์๊ฐ ๋ณต์ก๋๊ฐ ํ์ ์ ์ด๋ค
- ์ฌ์ฉํ dp๋ฅผ ๋ฏธ๋ฆฌ ์ผ์ฐจ์ ๋ฐฐ์ด ๋๋ ์ด์ฐจ์ ๋ฐฐ์ด๋ก ์ ์ํด ๋๊ณ ์์ํ๋ค.
- 2์ค for๋ฌธ์ ์ฌ์ฉํ๋ค.
- ๋๋ถ๋ถ ๊ฒ for๋ฌธ์ ์ฐจ๋ก๋๋ก ๋ฐ์ ๊ฐ(i), ์ for๋ฌธ์ ๋ด๊ฐ ์ด์ ์ ๊ตฌํ ํด ์ค ํด๋น ๊ฐ(j)๋ฅผ ์๋ฏธํ๋ค.
- max(,) ๋น๊ต๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค. (๋๋ถ๋ถ ์ด์ ์ํํด์ ์๋กญ๊ฒ ๊ตฌํ ํด๋ฅผ ๋น๊ตํ ๋ ์ฌ์ฉํ๋ค)
- dp์ ํฌ๊ธฐ๊ฐ ํ์ ์ ์ด์ง ์๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผํ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค -> ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํ์ฌ T/F๋ก ๋ํ๋ด๋ ๋ฑ์ ๋ค๋ฅธ ๋ฐฉ์์ ์๊ฐํด๋ณด์
- dp์ ์ ์ฅ๋๋ ๊ฐ์ ๊ตฌํ๋ ค๋ ํด์ด๋ค.
๋ฐ์ํ