코딩/알고리즘
[알고리즘] 백준14501 퇴사문제 C++
유어노우
2020. 12. 24. 15:18
이런 입력이 주어질때는 input.txt 를 만들고 하는 편이다
수고로움도 덜어주고 시간도 절약되기 때문
#include <iostream>
#include <algorithm> //max함수 사용 위해
using namespace std;
struct Item {
int t;
int p;
};
#define MAX_N 15 //N 최대값
int n; //입력받을 데이터 수
int dp[MAX_N+1];
Item item[MAX_N+1];
void sol();
int main(void) {
//freopen("input.txt","r",stdin);
cin >> n;
//데이터 입력
for(int i=1; i<=n ;i++) {
cin>> item[i].t >> item[i].p;
// cout << item[i].t<< " , "<< item[i].p <<endl;
dp[i]=item[i].p;
}
sol();
}
void sol(){
int maxprofit=0;
for(int i=2;i<=n;i++){
for(int j=1; j<i ; j++) {
if(i-j >= item[j].t){
dp[i] = max( dp[i], dp[j]+item[i].p);
}
}
}
for (int i = 1; i <= n; i++) {
if (i + item[i].t <= n + 1) {
if (maxprofit < dp[i]) {
maxprofit = dp[i];
}
}
}
cout << maxprofit <<endl;
}
시간이 너무 많이 걸렸다
많이 풀어봐야지