1. ๋ฌธ์ : https://leetcode.com/problems/coin-change/
๋์ ์ ์ต์๋ก ์ฌ์ฉํด ํน์ ์ซ์๋ฅผ ๋ง๋ค๊ธฐ (์ค๋ณต์ฌ์ฉ ๊ฐ๋ฅ)
2. ํ์ด
dp ๋ฌธ์
๋์ ์ต์ํฌ๊ธฐ์ธ 11๋ณด๋ค +1์๋ฅผ max๊ฐ์ผ๋ก dp์ ์ ์ฅํ๊ณ ,
ํด๋น ์ซ์๋ฅผ ๋ง๋ค ์ ์๋ ์ต์์ฌ์ฉํ์๋ฅผ ๋น๊ตํ๋ฉฐ ๊ตฌํ๋ ๋ฐฉ์ (์ด๋ ค์...)
ex)
์ซ์ 2๋ ์ฝ์ธ2 ํ๋ฒ์ ๋ง๋ค ์ ์์ -> ์ด๊ฑธ ์ด๋ป๊ฒ dp๋ก ์๋์ผ๋ก ํ๋? -> dp[i-money์ฆ 0] +1 ๊ณผ dp[i] ๊ฐ ์ค ๋น๊ตํด์ ๋ฃ์ผ๋ฉด๋จ
3. ์ฝ๋
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount+1];
Arrays.fill(dp,amount+1);
dp[0]=0;
if(amount==0)
return 0;
for(int i=1; i<=amount; i++) {
for(int money : coins) {
if(money <= i){
dp[i]=Math.min(dp[i],dp[i-money]+1);
}
}
}
if(dp[amount]==amount+1){
return -1;
}
return dp[amount];
}
}
'๐ป Coding Problems Solving > Dynamic Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ 1890] ์ ํ (java) (0) | 2023.04.20 |
---|---|
[LeetCode] Longest Increasing Subsequence (0) | 2023.03.30 |
[LeetCode] Maximum Product Subarray (0) | 2023.03.28 |
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 2*n ํ์ผ๋ง (์๋ฐ java) (0) | 2023.03.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ๋ ๋ฐ๋จน๊ธฐ (์๋ฐ java) (0) | 2023.03.10 |
์ต๊ทผ๋๊ธ