๐ ๋์ ๊ณํ๋ฒ(Dynamic Programming)
- ์์ ๊ฒ์์ ์ค๋งํธํ๊ฒ ํ๋ ๋ฐฉ๋ฒ
- ์ฌ๊ท + ๋ฉ๋ชจ์ด์ ์ด์
์ด๋ผ๊ณ ํ ์ ์์
- ์ ํ์์ผ๋ก ํํ ๊ฐ๋ฅ
๐ฌ ๋ฉ๋ชจ์ด์ ์ด์
- ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์ด์ ๊ณ์ฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ ๋งค๋ฒ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ๋ ๊ฒ
- ์ ์ฒด์ ์ธ ์คํ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ ๊ธฐ์
- ๋์ ๊ณํ๋ฒ์ ํต์ฌ ๊ธฐ์
๋ฌธ์ ์
- ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์
- ์ฌ๊ท ํจ์ ํธ์ถ๋ก ์ธํ ์์คํ
ํธ์ถ ์คํ์ ์ฌ์ฉํ๊ฒ ๋๊ณ ์คํ ์๋ ์ ํ ๋๋ ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ๊ฐ๋ฅ
- ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ๋ฅํ๋ฉด ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ํ
๐ฌ ๋์ ๊ณํ ์๊ณ ๋ฆฌ์ฆ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฐ์ด ์ต์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ต์ ํ ๋ฌธ์ : ์ต์ (์ต๋๊ฐ์ด๋ ์ต์๊ฐ ๊ฐ์)๊ฐ์ ๊ตฌํ๋ ๋ฌธ์
- ํด๋น ๋ฌธ์ ์ ์ฌ๋ฌ ํด๊ฐ ์์ ์ ์์
- The ์ต์ ํด๊ฐ ์๋๋ผ an ์ต์ ํด ๊ตฌํ๋ ๊ฒ
- ๋จผ์ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ค์ ํด๋ฅผ ๊ตฌํ๊ณ ์ด๋ค์ ์ด์ฉํด ๋ณด๋ค ํฐ ํฌ๊ธฐ์ ๋ถ๋ถ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด, ์ต์ข
์ ์ผ๋ก ์๋ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ
โพ ๋์ ๊ณํ๋ฒ์ ์ ์ฉ ์๊ฑด
์ต์ ๋ถ๋ถ๋ฌธ์ ๊ตฌ์กฐ(Optimal substructure)
- ์ด๋ค ๋ฌธ์ ๊ฐ ์ต์ ์ผ ๋ ๊ทธ ํด๋ฅผ ๊ตฌ์ฑํ๋ ์์ ๋ฌธ์ ๋ค์ ํด ์ญ์ ์ต์ ์ด์ด์ผ ํจ
- ๋์ ๊ณํ๋ฒ์ ๋ฐฉ๋ฒ ์์ฒด๊ฐ ํฐ ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ์์ ๋ฌธ์ ์ ์ต์ ํด๋ค์ ์ด์ฉํ์ฌ ๊ตฌํ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ํฐ ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ์์ ๋ฌธ์ ๋ค์ ์ต์ ํ์ ํด๋ค๋ก ๊ตฌ์ฑ๋์ง ์์ผ๋ฉด ์ ์ฉ ๋ถ๊ฐ
์ค๋ณต ๋ถ๋ถ๋ฌธ์ ๊ตฌ์กฐ(Overlapping subproblems)
- DP๋ ํฐ ๋ฌธ์ ๋ฅผ ์ด๋ฃจ๋ ์์ ๋ฌธ์ ๋ค์ ๋จผ์ ํด๊ฒฐ ํ ์์ ๋ฌธ์ ๋ค์ ์ต์ ํด๋ฅผ ์ด์ฉํด ์ํ์ ์ผ๋ก ํฐ ๋ฌธ์ ํด๊ฒฐ
- ์ํ์ ์ธ ๊ด๊ณ๋ฅผ ํํํ๊ธฐ ์ํด ๋์ ๊ณํ๋ฒ์์๋ ์ผ๋ฐ์ ์ผ๋ก ์ ํ์ ์ฌ์ฉ
- ์ํ์ ์ธ ์ฑ์ง ๋๋ฌธ์ ์ด์ ์ ๊ณ์ฐ๋์๋ ์์ ๋ฌธ์ ์ ํด๊ฐ ํ์ํ๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ์ํด DP์์๋ ์ด๋ฏธ ํด๊ฒฐ๋ ์์ ๋ฌธ์ ์ ํด๋ฅผ ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฅํ๊ฒ ๋จ
- ์ด ์ ์ฅ๋ ํด๋ค์ ์ ์ฅ ๊ณต๊ฐ(table)์ ์ฐธ์กฐ๋ฅผ ํตํด์ ์ค๋ณต๋ ๊ณ์ฐ ํผํ ์ ์์
๐ฌ DP ์ ์ฉ ์ ๊ทผ ๋ฐฉ๋ฒ
- ์ต์ ํด ๊ตฌ์กฐ์ ํน์ฑ ํ์
- ๋ฌธ์ ๋ฅผ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋
- ์ต์ ํด์ ๊ฐ์ ์ฌ๊ท์ ์ผ๋ก ์ ์
- ๋ถ๋ถ ๋ฌธ์ ์ ์ต์ ํด ๊ฐ์ ๊ธฐ๋ฐํด ๋ฌธ์ ์ ์ต์ ํด ๊ฐ ์ ์
- ์ํฅ์ ๋ฐฉ๋ฒ์ผ๋ก ์ต์ ํด์ ๊ฐ ๊ณ์ฐ
- ๊ฐ์ฅ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ถํฐ ํด๋ฅผ ๊ตฌํ๊ณ ํ
์ด๋ธ ์ ์ฅ
- ํ
์ด๋ธ์ ์ ์ฅ๋์๋ ๋ถ๋ถ ๋ฌธ์ ์ ํด๋ฅผ ์ด์ฉํด์ ์ ์ฐจ์ ์ผ๋ก ์์ ๋ถ๋ถ ๋ฌธ์ ์ ์ต์ ํด ๊ตฌํจ (์ํฅ์ ๋ฐฉ๋ฒ)
๐ฌ ๋ถํ ์ ๋ณต๊ณผ ๋์ ๊ณํ๋ฒ ๋น๊ต
๋ถํ ์ ๋ณต
- ์ฐ๊ด ์๋ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋ถํ
- ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ๋
๋ฆฝ, ์ฌ๊ท์ ์ผ๋ก ํด๊ฒฐ
- ๋ถ๋ถ ๋ฌธ์ ์ ํด๋ฅผ ๊ฒฐํฉ
- ํํฅ์ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผ
DP
- ๋ถ๋ถ ๋ฌธ์ ๋ค์ด ์ฐ๊ด์ด ์์ผ๋ฉด ์ ์ฉ ๋ถ๊ฐ๋ฅ
- ์ฆ, ๋ถ๋ถ ๋ฌธ์ ๋ค์ ๋ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ค์ ๊ณต์
- ๋ชจ๋ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ํ๋ฒ๋ง ๊ณ์ฐํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ ํ ์ฌ์ฌ์ฉ
- ๋ถํ ์ ๋ณต์ ๊ฐ์ ๋ถ๋ถ ๋ฌธ์ ๊ฐ ๋ํ๋ ๊ฒฝ์ฐ ๋ค์ ๊ณ์ฐ
- ์ํฅ์ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผ