반응형
n원의 거스름돈을 주는 경우의 수를 푸는 문제이다.
우선 0원일 때에 경우의 수 1을 입력한다. 그 후 금액별로 n원 까지 경우의 수를 구하는데
구하려는 금액에 거스름돈의 단위를 뺀 값의 dp값을 더해주면 된다.
#include <string>
#include <vector>
using namespace std;
int solution(int n, vector<int> money) {
int dp[100000];
dp[0] = 1;
for(int i=0; i<money.size(); i++){
for(int j=0; j<=n; j++){
if(j>=money[i]){
dp[j] += dp[j-money[i]] % 1000000007;
}
}
}
return dp[n];
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] LV.5 상품을 구매한 회원 비율 구하기 (MySQL) (0) | 2023.04.21 |
---|---|
[백준] 17298 오큰수 (C++) (0) | 2023.04.18 |
[프로그래머스] LV.3 숫자게임 (JAVA) (0) | 2023.04.18 |
[백준] 11000 강의실 배정 (C++) (0) | 2023.04.14 |
[프로그래머스] LV.3 정수 삼각형 (C++) (0) | 2023.03.22 |