728x90
const coinChange = function (total, coins) {
let dp = Array.from({length:10002}).fill(0);
dp[0] = 1;
for(let i=0;i<coins.length;i++) {
for(let j = coins[i]; j<= total; j++) {
dp[j] += dp[j-coins[i]];
}
}
return dp[total];
}
값을직접 대입해보았다.
10, [1,2,5]
for i=1일떄
dp[2] += dp[2-2]; -- 2로 2를 만들 수 있는 경우의 수가 있으니 더해준다
dp[3] += dp[3-2]; -- 3을 만들때는 2와 dp[1](1을만들 수 있는 경우의 수) 가 필요한 것이니 1을 만들 수 있는 경우의 수를 더해준다
dp[4] += dp[4-2]; -- 4를 만들떄는 2와 dp[2](2를 만들 수 있는 경우의 수) 가 필요한 것이니 2를 만들 수 있는 경우의 수를 더해준다
for i=2일떄
dp[5] += dp[5-5]; -- 5로 5를 만들 수 있는 경우의 수는 있으니 더해준다
dp[6] += dp[6-5]; -- 6을 만들때는 5와 dp[1](1을 만들 수 있는 경우의 수)가 필요한 것이니 1을 만들 수 있는 경우의 수를 더해준다
dp[7] += dp[7-5]; -- 7을 만들때는 5와 dp[2](2를 만들 수 있는 경우의 수)가 필요한 것이니 2를 만들 수 있는 경우의 수를 더해준다
반응형
'BEB > algorithm' 카테고리의 다른 글
| 40_longestPalindrome 가장긴 팰린드롬 (0) | 2022.12.20 |
|---|---|
| 38_decompression (0) | 2022.12.16 |
| 34_LCS (Longest Common Subsequence) (0) | 2022.12.12 |
| 33 LIS (Longest Increasing Sequence) 가장 긴 증가하는 수열 (0) | 2022.12.09 |
| 백준6549 javascript 히스토그램, 32_largestRectangularArea (0) | 2022.12.08 |
댓글