์•Œ๊ณ ๋ฆฌ์ฆ˜

๋™์  ๊ณ„ํš๋ฒ•( Dynamic Programming) ๊ณผ ๋ถ„ํ•  ์ •๋ณต(Divide Conquer)

jjingle 2024. 2. 5. 15:09

๋™์  ๊ณ„ํš๋ฒ• ( DP; Dynamic Programming) ?

  • ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•œ ํ›„, ํ•ด๋‹น ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ํ•ด๋ฅผ ํ™œ์šฉํ•ด ๋ณด๋‹ค ํฐ ํฌ๊ธฐ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
  • ์ƒํ–ฅ์‹ ์ ‘๊ทผ๋ฒ•
  • Memoization ๊ธฐ๋ฒ• : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ, ์ด์ „์— ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ์ €์žฅํ•˜์—ฌ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ํ•จ -> ์‹คํ–‰์†๋„ ํ–ฅ์ƒ
  • ๋ฌธ์ œ๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐค ๋•Œ, ๋ถ€๋ถ„ ๋ฌธ์ œ๋Š” ์ค‘๋ณต๋˜์–ด ์žฌํ™œ์šฉ๋จ -> ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด                                                                                                                                         

๋ถ„ํ•  ์ •๋ณต (Divide and Conquer ) ?

  • ๋ฌธ์ œ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ๋‚˜๋ˆ„์–ด์„œ, ๊ฐ๊ฐ ํ’€๋ฉด์„œ ๋‹ค์‹œ ํ•ฉ๋ณ‘ํ•˜์—ฌ ๋ฌธ์ œ์˜ ๋‹ต์„ ์–ป๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํ•˜ํ–ฅ์‹ ์ ‘๊ทผ๋ฒ• (์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„)
  • ๋ฌธ์ œ๋ฅผ ์ž˜๊ฒŒ ์กฐ๊ฐค ๋•Œ, ๋ถ€๋ถ„ ๋ฌธ์ œ๋Š” ์„œ๋กœ ์ค‘๋ณต๋˜์ง€ ์•Š์Œ                                                                                                        

 

 

๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ 

  • ๊ณตํ†ต์  : ๋ฌธ์ œ๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ, ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„๋กœ ๋ถ„ํ• 
  • ์ฐจ์ด์ 
    • ๋™์  ๊ณ„ํš๋ฒ•
      • ๋ถ€๋ถ„ ๋ฌธ์ œ๋Š” ์ค‘๋ณต๋˜์–ด, ์ƒ์œ„ ๋ฌธ์ œ ํ•ด๊ฒฐ ์‹œ ์žฌํ™œ์šฉ๋จ
      • Memoization ๊ธฐ๋ฒ• ์‚ฌ์šฉ(๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ํ•ด๋‹ต์„ ์ €์žฅํ•ด์„œ ์žฌํ™œ์šฉํ•˜๋Š” ์ตœ์ ํ™” ๊ธฐ๋ฒ•)
    • ๋ถ„ํ•  ์ •๋ณต
      • ๋ถ€๋ถ„ ๋ฌธ์ œ๋Š” ์„œ๋กœ ์ค‘๋ณต๋˜์ง€ ์•Š์Œ
      • Memoization ๊ธฐ๋ฒ• ์‚ฌ์šฉ ์•ˆํ•จ