Skip to content

Commit 11581cb

Browse files
committed
[Week4](gmlwls96) Coin Change
1 parent 824a904 commit 11581cb

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

β€Žcoin-change/gmlwls96.ktβ€Ž

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution {
2+
// μ•Œκ³ λ¦¬μ¦˜ : dp
3+
/** 풀이
4+
* dp배열에 μ΅œμ†Œν•œμ˜ λ™μ „μ˜ 개수λ₯Ό μ €μž₯.
5+
* dp[i] = min(dp[i - 동전값], dp[i]) 쀑 더 μž‘μ€κ°’μ΄ μ΅œμ†Œ λ™μ „μ˜ 개수.
6+
* */
7+
// μ‹œκ°„ : O(coins.len*amount), 곡간 : O(amount)
8+
fun coinChange(coins: IntArray, amount: Int): Int {
9+
val initValue = Int.MAX_VALUE / 2
10+
val dp = IntArray(amount + 1) { initValue }
11+
dp[0] = 0
12+
for (i in 1..amount) {
13+
coins.forEach { c ->
14+
if (c <= i) {
15+
dp[i] = min(dp[i - c] + 1, dp[i])
16+
}
17+
}
18+
}
19+
return if (dp[amount] == initValue) {
20+
-1
21+
} else {
22+
dp[amount]
23+
}
24+
}
25+
}

0 commit comments

Comments
Β (0)