하루하나코딩

백준 14501 : 퇴사 c++

HAHAKO 2023. 3. 6. 20:05

코드

#include <iostream>
#include <algorithm>

using namespace std;

int t[16];
int p[16];
int dp[16];

int main(){

	int n;
	cin >> n;
	
	
	int idx = 0;
	
	for(int i = 1; i <= n; i++){
		cin >> t[i] >> p[i];	
	}
	
	for(int i  = n; i > 0; i--){
		idx = i + t[i];
		if(idx > n+1){
			dp[i] = dp[i+1];
		}
		else{
			dp[i] = max(dp[i+1], dp[idx] + p[i]);
		}
	}
	
	cout << dp[1] << endl;
	
	return 0;
}

알게된 점

탑다운 dp 방법이었다.

기억해 두어야 겠다.