프로그래밍/백준

[C언어/DP] 2579 : 계단 오르기

JINJIN123 2022. 2. 7. 00:15

 

 

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]);
}