728x90
๐ง Memoization
์ฌ๊ท์ ์ผ๋ก ๋ฐ๋ณต๋๋ ์ด๋ ํ ํจ์์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ฒ์ ์๋ฏธํฉ๋๋ค.
๐ง Dynamic Programming
Recursion(์ฌ๊ท)๊ณผ Memoization์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฒ์ ์๋ฏธํฉ๋๋ค.
DP์ ๋ณธ์ง์ ์ฌ๊ท๋ฅผ ์ฌ๋ฐ๋ฅด๊ณ ๋๋ํ๊ฒ ํ๋ ๊ฒ์ด๋ฏ๋ก, ์ฌ๊ท๋ฅผ ์ํ Recurrence Relation์ ์ฌ๋ฐ๋ฅด๊ฒ ์ธ์ฐ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๐ง DP ๋ฌธ์ ํด๊ฒฐ ์์
1. ๋ฌธ์ ๋ฅผ ์ ํํ๊ฒ ์ ์ํฉ๋๋ค.
2. ์ ์๋ ๋ฌธ์ ์ ๋ํ์ฌ ๋ถ๋ถ ๋ฌธ์ (Subproblem)์ ์ ์ํฉ๋๋ค.
3. Subproblem์ ์ด์ฉํ์ฌ Recurrence Relation์ ์ธ์๋๋ค.
4. Memoization์ ์ด์ฉํ์ฌ Recurrence Relation์ ๊ณ์ฐํฉ๋๋ค.
- ์ค๊ฐ ๊ฒฐ๊ณผ๋ฌผ๋ค๋ค ์ ์ฅํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ค์ ํ์ฌ์ผ ํฉ๋๋ค. ๋ณดํต์ n์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํฉ๋๋ค.
- Subproblem๋ค ๊ฐ์ Dependency๋ฅผ ํ์ธํฉ๋๋ค. ์๋ฅผ ๋ค์ด F(n) = F(n-1) + F(n-2)๋ผ๋ฉด F(n)์ F(n-1)๊ณผ F(n-2)์ ์์กดํฉ๋๋ค.
- Dependency์ ๊ธฐ๋ฐ์ํ Subproblem๋ค์ ๋ต์ ๊ตฌํ๋ ์์๋ฅผ ์ ํด์ผ ํฉ๋๋ค.
5. ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ถ์ํ๊ณ ์๊ณ ๋ฆฌ์ฆ์ ์ค์ ์ฝ๋๋ก ์์ฑํฉ๋๋ค.
728x90
'๐ฅ Computer Science > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] DP (2) - Edit Distance(ํธ์ง ๊ฑฐ๋ฆฌ) (0) | 2022.11.12 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] DP (1) - LIS(์ต์ฅ ์ฆ๊ฐ ๋ถ๋ถ ์์ด) (0) | 2022.11.10 |
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋ (3) - Huffman Encoding(ํํ๋ง ๋ถํธํ) (0) | 2022.10.21 |
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋ (2) - Interval scheduling (0) | 2022.10.21 |
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋ (1) - ์ต์ ์ ์ฅ ํธ๋ฆฌ (Minimum Spanning Tree) (0) | 2022.10.21 |