๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ (1)

๐Ÿ–ฅ dev-ruby

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋™์ ๊ณ„ํš๋ฒ•(Dynamic Programming, DP) ์ด๋ž€?

๋™์ ๊ณ„ํš๋ฒ•(Dynamic Programming)์€ ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. dp์˜ ํ•ต์‹ฌ์€ "๋ฉ”๋ชจ์ด์ œ์ด์…˜" ๊ธฐ๋ฒ•์ธ, ์ด๋ฏธ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ž‘์€ ๋ฌธ์ œ๋“ค์ด ๊ณ„์† ๋ฐ˜๋ณต๋˜๊ณ , ๊ทธ ์ž‘์€ ๋ฌธ์ œ์˜ ๊ฒฐ๊ด๊ฐ’์€ ํ•ญ์ƒ ๊ฐ™์„ ๋•Œ DP ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ์‚ดํŽด๋ณด์ž. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ... ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ตฌํ•  ๋•Œ๋Š” ์žฌ๊ท€๋ฅผ ์“ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด์ „ ๊ฒฐ๊ณผ์™€ ์ „์ „ ๊ฒฐ๊ณผ์˜ ํ•ฉ์œผ๋กœ ๊ณ„์† ๊ตฌํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค. return f(n) = f(n-1) + f(n-2) ๊ทธ๋Ÿฐ..

algorithm 2021. 12. 21. 16:34