😎풀이

  1. dp선언
  2. amount 까지의 금액 순회
    2-1. 금액icoin보다 크다면, dp 배열에 최소 개수 반영
  3. 최종 값이 초깃값 Infinity라면 -1반환, 아니라면 해당 코인 수 반환
function coinChange(coins: number[], amount: number): number {
    const dp = Array(amount + 1).fill(Infinity)
    dp[0] = 0
    for(let i = 0; i <= amount; i++) {
        for(const coin of coins) {
            if(i < coin) continue
            dp[i] = Math.min(dp[i], dp[i - coin] + 1)
        }
    }
    return dp[amount] === Infinity ? -1 : dp[amount]
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글