Skip to content

Commit 77c39aa

Browse files
committed
coin-change solution
1 parent dd39567 commit 77c39aa

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

โ€Žcoin-change/krokerdile.jsโ€Ž

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @param {number[]} coins
3+
* @param {number} amount
4+
* @return {number}
5+
*/
6+
var coinChange = function(coins, amount) {
7+
const dp = new Array(amount + 1).fill(Infinity);
8+
dp[0] = 0; // 0์›์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋™์ „ ์ˆ˜๋Š” 0๊ฐœ
9+
10+
// bottom-up DP
11+
for (let i = 1; i <= amount; i++) {
12+
for (const coin of coins) {
13+
if (i - coin >= 0) {
14+
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
15+
}
16+
}
17+
}
18+
19+
return dp[amount] === Infinity ? -1 : dp[amount];
20+
};
21+
22+
// ์‹œ๊ฐ„๋ณต์žก๋„: O(amount * coins.length)
23+
// -> ๊ฐ ๊ธˆ์•ก i๋งˆ๋‹ค ๋ชจ๋“  coin์„ ์‹œ๋„ํ•˜๊ธฐ ๋•Œ๋ฌธ
24+
// ๊ณต๊ฐ„๋ณต์žก๋„: O(amount)
25+
// -> dp ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ

0 commit comments

Comments
ย (0)