그냥 간단한 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 |