알고리즘 · 코딩
[프로그래머스] 거스름돈
G A
2020. 6. 10. 15:08
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12907
코딩테스트 연습 - 거스름돈
Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5��
programmers.co.kr
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];
}
반응형