알고리즘 문제
[C/C++ 백준 2156번] 포도주 시식 (Silver 1)
새파란 공대생
2020. 5. 23. 18:30
https://www.acmicpc.net/problem/2156
2156번: 포도주 시식
효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규
www.acmicpc.net
포도주를 시식할 수 있는 3가지 경우를 모두 비교해, 그중 가장 큰것을 저장하면 되는 문제이다. 매우 쉬움.
#include <cstdio>
#include <algorithm>
using namespace std;
int main(void){
int n, juice[10001], dp[10001]={};
scanf("%d", &n);
for(int i=1; i<=n; i++){
scanf("%d", &juice[i]);
if(i==1) dp[i]=juice[i];
else if(i==2) dp[i]=juice[i-1]+juice[i];
else{
dp[i]=max(juice[i]+juice[i-1]+dp[i-3], juice[i]+dp[i-2]);
dp[i]=max(dp[i], dp[i-1]);
}
}
printf("%d",dp[n]);
}