dp 배열 : i 번째 value값이 포함될때의 최댓값
(i번째 value값이 포함되지 않을 때의 값도 비교하는 바람에 틀렸었다. )
#include<stdio.h>
#define MAX 305
double max(double a,double b){
return a>b?a:b;
}
int main(void){
int n;
double dp[MAX]={0},arr[MAX]={0};
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf",&arr[i]);
dp[1]=arr[1];
dp[2]=arr[1]+arr[2];
for(int i=3;i<=n;i++){
dp[i]=max(dp[i-3]+arr[i-1]+arr[i],dp[i-2]+arr[i]);
}
printf("%.lf",dp[n]);
}
'프로그래밍 > 백준' 카테고리의 다른 글
[C언어/DP] 1309 : 동물원 (0) | 2022.02.09 |
---|---|
[C언어/DP] 9461 : 파도반 수열 (0) | 2022.02.08 |
[C언어/DP] 2293 : 동전1 (0) | 2022.01.31 |
[C언어/knapsack(DP)] 12865 : 평범한 배낭 (0) | 2022.01.28 |
[C언어/브르투포스] 2798 : 블랙잭 (0) | 2022.01.25 |