Dynamic Programming
๋๋ฌด ์ด๋ ค์์
๋์ ๊ณํ๋ฒ (DP)
ํ๋๋ ๋ค์ด๋๋ฏน ํ์ง์๋ค๊ณ ํ๋ค. ๊ทธ๋ฅ ๋ฉ์์ด ๋ณด์ด๋ ค๊ณ ๋ถ์ธ ์ด๋ฆ..?
๋ฐํ์ ์ค ๋ฐ์ํ๋ ๊ฒ์ ๋ค์ด๋๋ฏน์ด๋ผ๊ณ ํ๋ฉด ์ด๊ฒ๊ณผ ๊ด๋ จ์ ์๋ค๊ณ ํ๋ค..
๋ฌธ์ ๋ฅผ ์ชผ๊ฐ์ ์์ ๋ฌธ์ ์ ๋ต์ ๊ตฌํ๋ค์, ๊ทธ๊ฑธ ๊ฐ์ง๊ณ ๋ ํฐ ๋ฌธ์ ์ ๋ต์ ๊ตฌํ๋ ๊ฒ์ ๋ฐ๋ณต
๋ถํ ์ ๋ณต๊ณผ ๋น์ทํ ๋๋์ธ๊ฐ?
DP ๊ตฌํ 2๊ฐ์ง ๋ฐฉ๋ฒ
๊ตฌํ
์ฌ๊ท
๋ฐ๋ณต๋ฌธ
์ ์ฅ ๋ฐฉ์
Memoization(๋ฉ๋ชจ์ด์ ์ด์ )
Tabulation(ํ๋ทธ๋ ์ด์ )
์ฅ์
์ง๊ด์ ์ด๋ผ ๊ฐ๋ ์ฑ์ด ์ข์
์ฌ๊ท๋ณด๋ค (๋ง์ด) ๋น ๋ฅด๋ค
๋จ์
depth๊ฐ ๊น์ด์ง์๋ก ์ฑ๋ฅ ์ ํ
์ ํ์์ ๋์ถ ํด์ผํ๋ค.
๋ ๋ฐฉ์๋ค ๊ณตํต์ ์ผ๋ก ํ ์ด๋ธ(dp)์ด๋ผ๊ณ ๋ถ๋ฅด๋, ๋ฐฐ์ด ๊ฐ์ ๊ฒ์ ์์ฑํ๋ค.
๋ฉ๋ชจ์ด์ ์ด์
Memoization
ํ ๋ฒ ๊ตฌํ ๋ต์ ๋ ๊ตฌํ์ง ์๋๋ก ์บ์ฑ(dp ํ ์ด๋ธ)์ ์ ์ฅํด๋๊ณ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๋ค -> ์ค๋ณต ์ฐ์ฐ์ ๋ฐฉ์ง
ํ์ํ ๋ถ๋ถ ๋ฌธ์ ๋ค๋ง ๊ตฌํ๋ค.
ํ๋ทธ๋ ์ด์
Tabulation
๋ถ๋ถ ๋ฌธ์ ๋ค์ ๋ต์ ๋ฏธ๋ฆฌ ๋ค ๊ตฌํ๋ค. -> ํ์ํ์ง ์์ ๋ต๋ค๊น์ง ๋ชจ๋ ๊ตฌํ๋ค.
ํ ์ด๋ธ์ ์ฑ์๊ฐ๋ค๋ ์๋ฏธ์์ ํ๋ทธ๋ ์ด์ ์ด๋ค.
์ฌ์ฉํ์ง ์์ ๋ต๊น์ง ์ ๋ถ ๊ตฌํ๋ค.
Last updated