Skip to content

Commit 25b4c78

Browse files
committed
coin change solution
1 parent 330367c commit 25b4c78

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

โ€Žcoin-change/byol-han.jsโ€Ž

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

0 commit comments

Comments
ย (0)