์•Œ๊ณ ๋ฆฌ์ฆ˜) 5 DP Examples - Knapsack, LCS, LIS, Edit Distance, Matrix Chain Multiplication

โ€ป ๊ท€์ฐฎ์•„๋„ ์ง์ ‘ ์†์œผ๋กœ ์“ฐ๊ณ  ๊ทธ๋ฆฌ๋ฉฐ ์ƒ๊ฐํ•ด์•ผ ์ดํ•ด๊ฐ€ ๋น ๋ฅด๋‹ค Example 1 : Knapsack (๋ฐฐ๋‚ญ ๋ฌธ์ œ) Dynamic Programming ๋ฌด๊ฒŒ์™€ ๊ฐ€์น˜๊ฐ€ ์ •ํ•ด์ง„ N๊ฐœ์˜ ๋ฌผ๊ฑด์ด ์žˆ์„๋•Œ, ๊ฐ€์น˜์˜ ์ดํ•ฉ์ด max๊ฐ€ ๋˜๋„๋ก ๋ฐฐ๋‚ญ์„ ์‹ธ๋Š” ๋ฌธ์ œ. ์ด๋•Œ, ๋ฐฐ๋‚ญ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์€ K์ด๋‹ค. (๊ฐ ๋ฌผ๊ฑด์€ 1๊ฐœ์”ฉ๋งŒ ์กด์žฌํ•˜๋ฉฐ, ๋ฐฐ๋‚ญ์— ๋„ฃ๊ฑฐ๋‚˜/์•ˆ๋„ฃ๊ฑฐ๋‚˜) ๋™์ „๊ตํ™˜๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Greedyํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ๋˜์ง€์•Š์Œ. ex) V[N] = {13,8,6,12} W[N] = {6,4,3,5} D[i][j] = i๋ฒˆ์งธ ๋ฌผ๊ฑด๊นŒ์ง€ ๋„ฃ์„์ง€/์•ˆ๋„ฃ์„์ง€ ์ •ํ–ˆ์„๋•Œ, ๋ฌด๊ฒŒ j์ดํ•˜๋ฅผ ์ฑ„์šฐ๋Š” ๊ฐ€์น˜์˜ ํ•ฉ์ค‘ ์ตœ๋Œ€๊ฐ’ => ์ ํ™”์‹ : D[i][j] = Max(D[i-1][j], D[i-1][j-W[i]]+V[i]) Max์—์„œ ๋น„๊ตํ•˜๋Š” ๋‘ ๊ฐ’์ค‘, ์ „์ž๋Š” ์ด์ „..

Algorithm 2019. 9. 13. 14:22
์•Œ๊ณ ๋ฆฌ์ฆ˜) DP (Dynamic Programming, ๋™์ ๊ณ„ํš๋ฒ•), ex: Coin Change Problem

Dynamic Programming (๋™์ ๊ณ„ํš๋ฒ•) ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž‘์€๋ถ€๋ถ„๋ฌธ์ œ(sub-problem)์œผ๋กœ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•˜๋Š” ๊ธฐ๋ฒ•. ์ด๋ฏธ ๊ณ„์‚ฐ๋œ ๋ถ€๋ถ„ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๋ฉด, ์ƒˆ๋กญ๊ฒŒ ๊ณ„์‚ฐํ•˜์ง€์•Š๊ณ  ์ด์ „์˜ ๊ณ„์‚ฐ๊ฐ’์„ ์ฐธ์กฐํ•ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. DP๋ฅผ ํ†ตํ•ด ๋ถ€๋ถ„๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด์ „ ๊ณ„์‚ฐ๊ฐ’์„ ์ €์žฅํ•  ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋ฏ€๋กœ Time - Space๊ฐ„์˜ trade off๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ex. ํ”ผ๋ณด๋‚˜์น˜ ๋‹จ์ˆœํƒ์ƒ‰์œผ๋กœ ๊ตฌํ˜„์‹œ, ์œ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ๋ฒˆ ๊ณ„์‚ฐ๋œ๋‹ค. => Memorization : ํ•œ๋ฒˆ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๊ธฐ๋กํ•ด๋‘๊ณ  ์ดํ›„ ์ค‘๋ณตํ˜ธ์ถœ ๋˜์—ˆ์„๋•Œ ์ƒˆ๋กญ๊ฒŒ ๊ณ„์‚ฐํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ์ €์žฅํ•ด๋‘”๊ฐ’์„ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•œ๋‹ค. fibonacci_topdown Top-Down / Bottom-Up Top-down ๋ฐฉ์‹์€ ํฐ ๋ฌธ์ œ์—์„œ..

Algorithm 2019. 9. 13. 14:15
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ