문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12907
C++ 풀이
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> money) {
sort(money.begin(), money.end());
vector <int> answer;
answer.resize(n);
for (int i = 0; i < n; i++)
if ((i + 1) % money[0] == 0)
answer[i] = 1;
for (int i = 1; i < money.size(); i++) {
int current = money[i];
for (int j = current - 1; j < n; j++) {
if (j == current - 1)
answer[j] = (answer[j] + 1) % 1000000007;
else if (j > current - 1) {
answer[j] = (answer[j] + answer[j - current]) % 1000000007;
}
}
}
return answer[n - 1];
}
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[SWEA 3456] 직사각형 길이 찾기 (0) | 2020.06.16 |
---|---|
[SWEA 2805] 농작물 수확하기 (0) | 2020.06.12 |
[SWEA 3431] 준환이의 운동관리 (0) | 2020.06.09 |
[SWEA 6730] 장애물 경주 난이도 (0) | 2020.06.08 |
[SWEA 4751] 다솔이의 다이아몬드 장식 (0) | 2020.06.05 |