티스토리 뷰
title: "거스름돈"
category: 프로그래머스[Level-3]
tags: [C++, JavaScript, 프로그래머스]
date: "2021-02-13"
문제 링크
C++
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> money) {
int answer = 0;
stable_sort(money.begin(), money.end()); // 작은 단위부터
vector<int> dp(n+1, 0); // 경우의 수
dp[0]=1; // init
for(int current: money){
for(int i=current; i<=n; i++){
// 해당 화폐(current)가 사용될 때부터
dp[i]+=dp[i-current];
dp[i]%=1000000007; // 미리 나누기
}
}
answer=dp[n];
return answer;
}
JavaScript
function solution(n, money) {
var answer = 0;
money.sort((a, b) => a - b); // 작은 단위부터
const dp = Array.from({ length: n + 1 }, () => 0);
dp[0] = 1; // init
money.forEach((value) => {
for (let i = value; i <= n; i++) {
// value~n 까지 갱신
dp[i] += dp[i - value]; // [i-value] 경우의 수 추가
dp[i] %= 1000000007; // 미리 나누기
}
});
answer = dp[n];
return answer;
}
728x90
반응형
'Programmers Solutions > Level-3' 카테고리의 다른 글
[프로그래머스] 배달 (0) | 2021.02.15 |
---|---|
[프로그래머스] 외벽 점검 (0) | 2021.02.14 |
[프로그래머스] 멀리 뛰기 (0) | 2021.02.13 |
[프로그래머스] 기둥과 보 설치 (0) | 2021.02.12 |
[프로그래머스] 가장 긴 팰린드롬 (0) | 2021.02.10 |
댓글