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

๋ชฉ๋ก๋™์ ๊ณ„ํš๋ฒ• (2)

๐Ÿ–ฅ dev-ruby

[๋ฐฑ์ค€][BOJ] ์นด๋“œ ๊ตฌ๋งคํ•˜๊ธฐ - silver.1 | ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ | ๋™์ ๊ณ„ํš๋ฒ• (Dynamic progrmming, DP)

๋ฌธ์ œ https://www.acmicpc.net/problem/11052 11052๋ฒˆ: ์นด๋“œ ๊ตฌ๋งคํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ๋ฏผ๊ทœ๊ฐ€ ๊ตฌ๋งคํ•˜๋ ค๊ณ  ํ•˜๋Š” ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000) ๋‘˜์งธ ์ค„์—๋Š” Pi๊ฐ€ P1๋ถ€ํ„ฐ PN๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Pi ≤ 10,000) www.acmicpc.net ํ’€์ด function solution(N, price){ let dp = [0, ...price]; for(let i = 2; i +el); console.log(solution(N, price)) ์ฒ˜์Œ์— ์ผ์ผ์ด N๊ฐœ๋ฅผ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ ์ˆ˜๋ฅผ ๋‹ค ๊ตฌํ–ˆ๋Š”๋ฐ, ์•„๋ฌด๋ฆฌ๋ด๋„ ์ข€ ๋” ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์œ„ ์ฝ”๋“œ๋Š” ๊ฐ i๋งˆ๋‹ค i๊ฐœ์”ฉ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ณ„๋กœ ์ตœ๋Œ“๊ฐ’์„ ๊ณ„์† ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ..

๋ฐฑ์ค€ 2022. 1. 26. 23:59
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋™์ ๊ณ„ํš๋ฒ•(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