π λ¬Έμ
Finnμ νΈμμ μμ μΌκ° μλ₯΄λ°μ΄νΈλ₯Ό νκ³ μμ΅λλ€. μΌκ°μ μλμ΄ λ무 μμ΄ μ¬μ¬ν Finnμ μλλ€κ» κ±°μ€λ¦λμ n μμ μ€ λ λ°©λ²μ κ²½μ°μ μλ₯Ό ꡬνκΈ°λ‘ νμμ΅λλ€.
μλ₯Ό λ€μ΄μ μλκ» 5μμ κ±°μ¬λ¬ μ€μΌ νκ³ 1μ, 2μ, 5μμ΄ μλ€λ©΄ λ€μκ³Ό κ°μ΄ 4κ°μ§ λ°©λ²μΌλ‘ 5μμ κ±°μ¬λ¬ μ€ μ μμ΅λλ€.
- 1μμ 5κ° μ¬μ©ν΄μ κ±°μ¬λ¬ μ€λ€.
- 1μμ 3κ° μ¬μ©νκ³ , 2μμ 1κ° μ¬μ©ν΄μ κ±°μ¬λ¬ μ€λ€.
- 1μμ 1κ° μ¬μ©νκ³ , 2μμ 2κ° μ¬μ©ν΄μ κ±°μ¬λ¬ μ€λ€.
- 5μμ 1κ° μ¬μ©ν΄μ κ±°μ¬λ¬ μ€λ€.
κ±°μ¬λ¬ μ€μΌ νλ κΈμ‘ nκ³Ό Finnμ΄ νμ¬ λ³΄μ νκ³ μλ λμ μ’ λ₯ moneyκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, Finnμ΄ n μμ κ±°μ¬λ¬ μ€ λ°©λ²μ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- nμ 100,000 μ΄νμ μμ°μμ λλ€.
- νν λ¨μλ 100μ’ λ₯ μ΄νμ λλ€.
- λͺ¨λ ννλ 무ννκ² μλ€κ³ κ°μ ν©λλ€.
- μ λ΅μ΄ μ»€μ§ μ μμΌλ, 1,000,000,007λ‘ λλ λλ¨Έμ§λ₯Ό return ν΄μ£ΌμΈμ.
μ μΆλ ₯ μ
5 | [1,2,5] | 4 |
βοΈ νμ΄
λ¬Έμ λ₯Ό λ³΄κ³ DP λ¬Έμ κ°μλ°..? λΌλ μκ°μ λ¨Όμ νλ κ² κ°λ€. λͺ¨λ κ²½μ°μ μλ₯Ό κ³μ μ°ΎκΈ°μλ 무쑰건 μκ°μ΄κ³Όκ° λ κ² κ°κ³ μ°¨κ·Όμ°¨κ·Ό λ©λͺ¨μ΄μ μ΄μ ν΄λμ κ°μ μ¬μ©ν΄μΌ ν κ² κ°μλ°λΌλ μκ°μ νλ€.
λ¨Όμ DP λ°°μ΄μ λ§λ€μ΄μ£Όλ©΄μ μ νμμ μκ°ν΄λ΄€λ€. λ΄κ° μΈμ΄ μ νμμ λ€μκ³Ό κ°λ€.
DP[i] = iμμ λ§λ€ μ μλ κ°μ§μ
μ²μμ money λ°°μ΄μ λ€μ΄μλ κ°μ μκΈ° μμ μ΄λ―λ‘ DP[money[i]]λ 1λ‘ μ΄κΈ°νν΄μΌ νλ€λ μκ°μ money λ°°μ΄μ λλ©΄μ dp[money[i]] += 1μ ν΄μ€¬λ€. κ·Έλ¦¬κ³ μκ°μ΄ λ κ² μκΈ° μμ λ³΄λ€ μμ κΈμ‘μ΄λΌλ©΄ λ§λ€ μ μλ κΈμ‘μ΄λΌλ μκ°μ λ°λ³΅λ¬Έμ 좩첩νμ¬ μκΈ° μμ λΆν° λͺ©νλ‘ ν κΈμ‘κΉμ§ κ°λ©΄μ iμμ λ§λ€ μ μλ κ²½μ°μ νμ¬ κΈμ‘μ ν¬ν¨νλ©° λ§λ€ μ μλ κ°μ§μλ₯Ό λν΄μ€¬λ€.
λ¬Έμ μ μμλ₯Ό μλ₯Ό λ€μ΄ νμ¬ λμ μ’ λ₯κ° 2μμ΄λΌλ©΄ 2μλΆν° 5μκΉμ§ μΈλ±μ€λ‘ μ¦κ°μν€λ©΄μ λ€μκ³Ό κ°μ μμ μ νλλ‘ νλ€.
- dp[2] = dp[2] + dp[2-2];
- dp[3] = dp[3] + dp[3-2];
- dp[4] = dp[4] + dp[4-2];
- dp[5] = dp[5] + dp[5-2];
μ΄ κ³Όμ μ λͺ¨λ μ’ λ£νκ² λλ©΄ dp[n] (dp λ°°μ΄μ λ§μ§λ§ μμ)λ κ²°κ³Όμ μΌλ‘ μ΄μ μ κ°λ₯ν λͺ¨λ κ°μ§μλ₯Ό λν κ°μ΄ λλ―λ‘ nμμ λ§λ€ μ μλ κ°μ§μκ° λλ€.
β¨οΈ μ½λ
function solution(n, money) {
const dp = new Array(n + 1).fill(0);
for (const m of money) {
dp[m] += 1;
for (let i = m; i <= n; i++) dp[i] += dp[i - m];
}
return dp[n] % 1000000007;
}
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Algorithm] κΈκ³Ό μ μ΄λ°νκΈ° (0) | 2023.03.20 |
---|---|
[Algorithm] μ°μ νμ€ λΆλΆ μμ΄μ ν© (0) | 2023.03.19 |
[Algorithm] μΈλ²½μ κ² (0) | 2023.03.17 |
[Algorithm] ν μ΄λΈ ν΄μ ν¨μ (1) | 2023.03.17 |
[Algorithm]μ«μ μΉ΄λ λλκΈ° (0) | 2023.03.16 |