#include <iostream> using namespace std; int max(int a, int b) {return a >= b ? a : b;} int main() { int N=0; int wine[10001]={0}; int dp[10001]={0};
cin >> N;
for(int i=1; i<=N; i++) { cin >> wine[i]; } dp[1]=wine[1]; dp[2]=wine[1]+wine[2]; if(N>2){ for(int i=3; i<=N;i++) { dp[i]=max(wine[i]+dp[i-2],wine[i]+wine[i-1]+dp[i-3]); dp[i]=max(dp[i],dp[i-1]); } } cout << dp[N]; } |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
171011_4673_셀프 넘버 (0) | 2017.10.11 |
---|---|
171010_1085_직사각형에서 탈출 (0) | 2017.10.10 |
20171009_1932_숫자 삼각형 (0) | 2017.10.09 |
20171008_11844_쉬운 계단 수 (0) | 2017.10.08 |
20171007_2193_이친수 (0) | 2017.10.07 |