Coding Problem/DP

[프로그래머스] 거스름돈

Yepchani 2025. 1. 17. 16:00
반응형

문제

거스름돈
https://school.programmers.co.kr/learn/courses/30/lessons/12907
 

 

풀이

설명

n원을 거슬러 줄 방법의 수를 구하는 문제입니다.
 
dp를 사용해 해결할 수 있습니다.
 
dp[i]는 i원을 거슬러 주는 방법의 수를 의미합니다.
dp[0] = 1로 초기화합니다.
 
각 화폐 단위에 대해서 그 화폐 단위까지 도달하는 방법의 수를 누적해 계산합니다.
 
점화식은 다음과 같습니다.
dp[i] = dp[i] + dp[i - coin]

 

예시 코드

function solution(n, money) {
  const MOD = 1000000007;

  const dp = Array(n + 1).fill(0);
  dp[0] = 1;

  for (const coin of money) {
    for (let j = coin; j <= n; j++) {
      dp[j] = (dp[j] + dp[j - coin]) % MOD;
    }
  }

  return dp[n];
}

'Coding Problem > DP' 카테고리의 다른 글

[BOJ 2116] 주사위 쌓기  (0) 2025.02.09
[프로그래머스] 도둑질  (0) 2025.01.29
[프로그래머스] 카운트 다운  (0) 2024.12.28
[프로그래머스] N으로 표현  (0) 2024.12.26
[프로그래머스] 3 x n 타일링  (0) 2024.12.25