Created
April 17, 2020 05:06
-
-
Save niklasjang/3f485cf10316bae9523a3fc967c67da2 to your computer and use it in GitHub Desktop.
[PS][완전탐색][N자리 K진수]/[BOJ][15486][퇴사2]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <iostream> | |
| #include <algorithm> | |
| #include <string.h> | |
| using namespace std; | |
| int n = 0; | |
| int dp[1500010]; | |
| int input[1500010][2]; | |
| int recur(int curr) { | |
| if (curr == n) return 0; | |
| if (dp[curr] != -1) return dp[curr]; | |
| if (curr + input[curr][0] > n) return dp[curr] = recur(curr + 1); | |
| return dp[curr] = max(recur(curr + input[curr][0]) + input[curr][1], recur(curr + 1)); | |
| } | |
| int main(void) { | |
| cin >> n; | |
| for (int i = 0; i < n; i++) { | |
| cin >> input[i][0] >> input[i][1]; | |
| } | |
| memset(dp, -1, sizeof(dp)); | |
| /*for (int i = 0; i <= n; i++) { | |
| cout << dp[i] << " "; | |
| }*/ | |
| cout << recur(0) << "\n"; | |
| /*for (int i = 0; i <= n; i++) { | |
| cout << dp[i] << " "; | |
| }*/ | |
| return 0; | |
| } |
Author
Author
//상향식 설계
#include <iostream>
#include <algorithm>
using namespace std;
int n = 0;
int dp[1500010];
int a, b;
int main(void) {
cin.tie(NULL);
ios::sync_with_stdio("false");
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a >> b;
//i번째 날짜의 일을 선택하는 경우
if (i + a <= n) {
dp[i + a] = max(dp[i+a], dp[i] + b);
}
//선택안하는 경우
dp[i + 1] = max(dp[i], dp[i + 1]);
}
cout << dp[n] << "\n";
return 0;
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
//하향식 설계