dp는 여전히 어렵다. 다음에는 뒤에서 부터 다시 코드를 짜봐야겠다.
#include <iostream>
using namespace std;
int dp[20];
int T[20];
int V[20];
int main () {
int N; cin>>N;
for(int i = 0; i < N; i++) {
cin >> T[i] >> V[i];
}
int ans = 0;
for(int i=0; i<=N; i++){
dp[i]=max(ans, dp[i]);
if (T[i]+i<=N){
dp[T[i]+i]=max(dp[T[i]+i],V[i]+dp[i]);
}
ans = max(ans, dp[i]);
}
cout << ans;
}'알고리즘' 카테고리의 다른 글
| Boj 14499 주사위 굴리기 Python (6) | 2025.07.29 |
|---|---|
| Boj 2310 c++ 어드벤처 게임 (0) | 2025.07.24 |
| Boj 7571 c++ 점 모으기 (0) | 2025.07.20 |
| Boj 32069 c++ 가로등 (1) | 2025.07.20 |
| Boj 28325 c++ 호숫가의 개미굴 (2) | 2025.07.20 |