그냥 간단한 dp문제이다.
핵심은 오늘까지 일에서 번돈이 어제까지의 번 돈보다 작은경우 오늘까지 번돈의 값을 바꿔준다.
* : dp를 풀어본 사람이라면 금방 풀 수 있을것 같다.
#include <iostream>
using namespace std;
int n,a,b,r[30],mx=0;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
scanf("%d %d", &a, &b);
if (r[i - 1] + b > r[i + a - 1])
r[i + a - 1] = r[i - 1] + b;
if (r[i - 1] > r[i])
r[i] = r[i - 1];
// 오늘까지 일에서 번돈이 어제까지의 번 돈보다 작은경우 오늘까지 번돈의 값을 바꿔준다.
if (r[i] > mx)
mx = r[i];
}
printf("%d", mx);
return 0;
}'IT > BOJ' 카테고리의 다른 글
| 백준(BOJ) 1759 암호만들기 * (0) | 2018.06.01 |
|---|---|
| 백준(BOJ) 1720번 타일 코드 *** (0) | 2018.06.01 |
| 백준(BOJ) 1126 같은 탑 *** (0) | 2018.06.01 |
| 백준(BOJ) 2470번 두 용액 ** (0) | 2018.06.01 |
| 백준(BOJ) 10610 30 * (0) | 2018.06.01 |