https://www.acmicpc.net/problem/14501
dp 문제입니다. ti일 후에 얻을 수 있는 돈을 비교했을 때,
p[i]+’이 날까지 벌 수 있는 돈’ 과 p[i+t[i]]를 비교하여 더 높은 값을 넣어 주면 됩니다.
#include <iostream>
using namespace std;
int dp[16];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
int t[16] = { 0, };
int p[16] = { 0, };
cin >> n;
for (int i = 1; i <= n; i++) cin >> t[i] >> p[i];
for (int i = 1; i <= n; i++) {
if (dp[i] > dp[i + 1])dp[i + 1] = dp[i];//내일보다 오늘이 더 많이벌면
if (dp[i] + p[i] > dp[i + t[i]]) {//t[i]일 후 dp[i]값과 비교
dp[i + t[i]] = dp[i] + p[i];
}
}
cout << dp[n + 1];//돈은 일 끝나고 받는걸로 가정했으므로
}
- 나 혼자 말하고 나 혼자 듣는 말
….