-
프로그래머스 - 거스름돈 [C++]문제 풀이/프로그래머스 2023. 8. 28. 16:02반응형
이 문제는 다이나믹 프로그래밍을 이용해서 풀었다. 저번에 풀었던 동전 1 문제와 완전히 동일하다. 동전에 대해서 먼저 루프를 돌리면 순서가 보장되므로 순서가 뒤바뀐 채로 경우의 수가 더해지는 일이 없다. 이 때에도 중요한 것은 dp[0] = 1로 초기화해줘야 한다는 것이다.
#include <string> #include <vector> using namespace std; long long dp[100001]; int solution(int n, vector<int> money) { int answer = 0; dp[0] = 1; for (int i = 0; i < money.size(); i++) { for (int j = money[i]; j <= n; j++) { dp[j] = (dp[j] + dp[j - money[i]]) % 1000000007; } } answer = dp[n]; return answer; }
반응형'문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 오픈채팅방 [C++] (0) 2023.08.28 프로그래머스 - 부대복귀 [C++] (0) 2023.08.28 프로그래머스 - 연속 펄스 부분 수열의 합 [C++] (2) 2023.08.28 프로그래머스 - 주차 요금 계산 [C++] (0) 2023.08.28 프로그래머스 - [3차] n진수 게임 [C++] (0) 2023.08.28