[Algorithm] π DP μκ³ λ¦¬μ¦
π DP μκ³ λ¦¬μ¦ (Dynamic Algorithm) μ΄λ
λ€μμ Dynamic Algorithm
μ μ¬μ μ μ μμ΄λ€.
볡μ‘ν λ¬Έμ λ₯Ό κ°λ¨ν μ¬λ¬ κ°μ λ¬Έμ λ‘ λλμ΄ νΈλ λ°©λ²μ λ§νλ€. μ΄κ²μ λΆλΆ λ¬Έμ λ°λ³΅κ³Ό μ΅μ λΆλΆ ꡬ쑰λ₯Ό κ°μ§κ³ μλ μκ³ λ¦¬μ¦μ μΌλ°μ μΈ λ°©λ²μ λΉν΄ λμ± μ μ μκ° λ΄μ ν λ μ¬μ©νλ€.
μΌλ°μ μΌλ‘ μ¬κ·λ₯Ό ν΅ν΄ ν μ μλ λ¬Έμ μ μκ°λ³΅μ‘λλ O(n^2)μ΄λ€.
νμ§λ§ λ€μ κ·Έλ¦Όκ³Ό κ°μ΄ μ¬κ·λ μ¬λ¬κ°μ§ κ²ΉμΉλ λμΌν μ°μ°λ€μ΄ λ°μνλ€.
μ΄λ₯Ό DPμκ³ λ¦¬μ¦μ ν΅ν΄ κ°μ νλ©΄ O(f(n))μ λλ‘ κ°μ μ΄ κ°λ₯νλ€.
π DP μκ³ λ¦¬μ¦μ μ¬μ© 쑰건
Overlapping Subproblems
Optimal Substructure
π Overlapping Subproblems
λμΌν μμ λ¬Έμ λ€μ΄ λ°λ³΅νμ¬ λνλλ κ²½μ°
π Optimal Substructure
λΆλΆ λ¬Έμ μ μ΅μ κ²°κ³Όκ°μ μ¬μ©ν΄ μ 체 λ¬Έμ μ μ΅μ κ²°κ³Όλ₯Ό λΌ μ μλ κ²½μ°
π ꡬνλ°©λ²
π Top-Down λ°©μ
μ¬κ·ν¨μμ λκ°μ λ°©μμΌλ‘ μλνμ§λ§, βMemoizationβμ νμ©νμ¬, μ΄μ μ κ³μ°ν κ°μ λ€μ λ°λ³΅νλ κ²μ΄ μλλΌ λ¨μν κ°μ Έμ€λ λ°©μμΌλ‘ μ²λ¦¬ν¨μΌλ‘μ¨, μκ°λ³΅μ‘λλ₯Ό μ€μ΄λ λ°©μμ΄λ€.
π Bottom-Up λ°©μ
dp[0]λΆν° dp[n]κΉμ§λ₯Ό μ νμμ μ΄μ©νμ¬, μλμμλΆν° μκΉμ§ λμ νμ¬ μ 체 ν° λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©μμ΄λ€.
π μ€μ!!!
2κ°μ§ λ°©λ² μ€ 2κ°μ§λ₯Ό μ λΆ μ¬μ©νμ§ λͺ»νκ³ , νλλ§ μ¬μ©ν μ μλ λ¬Έμ λ μ‘΄μ¬νλ€.
λ°λΌμ μ¬λ¬κ°μ§ λ¬Έμ λ₯Ό λ€κ°λλ‘ νμ΄λ³΄λ κ²½νμ΄ μ€μνλ€.
π κ΄λ ¨ μμ
tag:DP
κ°μΈ κ³΅λΆ κΈ°λ‘μ© λΈλ‘κ·Έμ
λλ€.
ν리거λ μ€λ₯κ° μμ κ²½μ° μ 보ν΄μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.π