반응형
문제
거스름돈
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 |