[์•Œ๊ณ ๋ฆฌ์ฆ˜] DP(Dynamic Programming)๋ž€?

DP๋ž€? ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋™์  ๊ณ„ํš๋ฒ•์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์—ฐ์‚ฐ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ตœ๋Œ€ํ•œ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. DP๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋ฉด ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. problem์ด ๋” ์ž‘์€ sub-problem๋“ค๋กœ ์ชผ๊ฐœ์งˆ ์ˆ˜ ์žˆ์„๋•Œ sub-problem๋“ค์˜ ์†”๋ฃจ์…˜์œผ๋กœ ๋” ํฐ ๊ทœ๋ชจ์˜ problem์˜ ์†”๋ฃจ์…˜์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์ชผ๊ฐœ์ง„ sub-problem๋“ค์ด ๊ฒน์น  ๋•Œ ์ฆ‰, ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ’€์–ด ์ €์žฅ(Memoization) ํ•จ์œผ๋กœ์จ, ํ•œ ๋ฒˆ ๊ณ„์‚ฐํ•œ ๋ฌธ์ œ๋Š” ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Top-Down vs Bottom-up DP๋กœ ํ’€์ดํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 2๊ฐ€์ง€, Top-Down ๋ฐฉ์‹๊ณผ Bottom-up๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. Top-Down ๋ฐฉ์‹ ์šฐ๋ฆฌ๋ง๋กœ 'ํ•˜ํ–ฅ..

CS/Algorithm 2022. 10. 25. 16:31