Skip to content

Commit 46e55b3

Browse files
committed
coin-search
1 parent 6208ce5 commit 46e55b3

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

β€Žcoin-change/JANGSEYEONG.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number[]} coins
3+
* @param {number} amount
4+
* @return {number}
5+
*/
6+
var coinChange = function (coins, amount) {
7+
// f(n) = n을 λ§Œλ“œλŠ”λ° ν•„μš”ν•œ λ™μ „μ˜ μ΅œμ†Œ 개수
8+
// f(n) = min(f(n), f(n-coin) + 1)
9+
10+
// dp λ°°μ—΄ μ΄ˆκΈ°ν™”: λͺ¨λ“  κΈˆμ•‘μ„ λ§Œλ“œλŠ”λ° ν•„μš”ν•œ 동전 개수λ₯Ό λΆˆκ°€λŠ₯ν•œ κ°’(amount+1)으둜 μ„€μ •
11+
const dp = new Array(amount + 1).fill(amount + 1);
12+
dp[0] = 0; // 0원은 0개의 λ™μ „μœΌλ‘œ λ§Œλ“€ 수 있음
13+
coins.forEach((coin) => {
14+
for (let i = coin; i < dp.length; i++) {
15+
// dp[i]: 기쑴에 κ³„μ‚°λœ i원을 λ§Œλ“œλŠ” μ΅œμ†Œ 동전 개수
16+
// dp[i-coin] + 1: (i-coin)원에 ν˜„μž¬ 동전 ν•˜λ‚˜λ₯Ό μΆ”κ°€ν•˜μ—¬ i원을 λ§Œλ“œλŠ” 경우
17+
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
18+
}
19+
});
20+
// λͺ©ν‘œ κΈˆμ•‘μ„ λ§Œλ“€ 수 μ—†μœΌλ©΄ -1 λ°˜ν™˜, κ°€λŠ₯ν•˜λ©΄ μ΅œμ†Œ 동전 개수 λ°˜ν™˜
21+
return dp[amount] < amount + 1 ? dp[amount] : -1;
22+
};

0 commit comments

Comments
Β (0)