[참고] Coin Change

APRIL 01, 2021

#. 테스트 문제

005 01


#. 결과 및 풀이

1. 풀이

@Test
void CoinChange() {
    Assertions.assertEquals(3, CoinChange_Solution(new int[]{1,2,5}, 11));
}

private int CoinChange_Solution(int[] coins, int amount) {
    
    //1.
    int max = amount + 1;
    int[] dp = new int[max];
    Arrays.fill(dp, max);
    dp[0] = 0;
    
    //2.
    for (int i=0; i<=amount; i++) {
        for(int j=0; j<coins.length; j++) {
            if(i >= coins[j]) {
                dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1);
            }
        }
    }
    return dp[amount] > amount ? -1 : dp[amount];
}

배웠다


작업 기록 블로그