Skip to content

Commit 4402283

Browse files
committed
add solution : 322. Coin Change
1 parent 83d09ec commit 4402283

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

โ€Žcoin-change/mmyeon.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
*
3+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• :
4+
* - ๋™์ „ ์ตœ์†Œ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋‹ˆ๊นŒ DP๋กœ ํ’€๊ธฐ
5+
* - ์ฝ”์ธ๋งˆ๋‹ค ์ˆœํšŒํ•˜๋ฉด์„œ ๋™์ „ ๊ฐœ์ˆ˜ ์ตœ์†Œ๊ฐ’ ๊ตฌํ•˜๊ธฐ
6+
* - ๊ธฐ์กด๊ฐ’๊ณผ ์ฝ”์ธ์„ ๋บ€ ๊ฐ’ + 1 ์ค‘ ์ž‘์€ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ
7+
*
8+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(n * m)
9+
* - ์ฝ”์ธ ๊ฐœ์ˆ˜ n๋งŒํผ ์ˆœํšŒ
10+
* - ๊ฐ ์ฝ”์ธ๋งˆ๋‹ค amount ๊ฐ’(m) ๋  ๋•Œ๊นŒ์ง€ ์ˆœํšŒ
11+
*
12+
* ๊ณต๊ฐ„๋ณต์žก๋„ : O(m)
13+
* - amount ๋งŒํผ dp ๋ฐฐ์—ด ์ƒ์„ฑ
14+
*
15+
*/
16+
function coinChange(coins: number[], amount: number): number {
17+
const dp = Array(amount + 1).fill(Number.MAX_VALUE);
18+
dp[0] = 0;
19+
20+
for (const coin of coins) {
21+
for (let i = coin; i <= amount; i++) {
22+
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
23+
}
24+
}
25+
26+
return dp[amount] === Number.MAX_VALUE ? -1 : dp[amount];
27+
}

0 commit comments

Comments
ย (0)