[백준/c++] 2579번: 계단오르기

somyeong·2022년 6월 7일
0

백준

목록 보기
38/45

문제 링크 - https://www.acmicpc.net/problem/2579

🌱 문제


🌱 풀이 및 코드

//2579. 계단 오르기
#include <iostream>
#include <cmath>
using namespace std;

int n;
int arr[301]; //계단 배열
int d[301][301]; //디피 저장
int answer; //정답

int main(){
    cin>>n;
    for(int i=1; i<=n; i++){
        cin>>arr[i];
    }

    d[1][0]=arr[1];
    d[2][0]=arr[2];
    d[2][1]=d[1][0]+arr[2];


    for(int i=3; i<=n; i++){
        d[i][i-2]=max(d[i-2][i-4],d[i-2][i-3])+arr[i]; //d[i][i-2]: i-2번째계단을 밟고 ,i번째 계단 밟는경우 
        d[i][i-1]=d[i-1][i-3]+arr[i];//d[i][i-1]: i-1번째 계단을 밟고, i번째 계단을 밟는 경우
    }

    answer=max(d[n][n-2],d[n][n-1]);
    cout<<answer<<"\n";



}
profile
공부한 내용 잊어버리지 않게 기록하는 공간!

0개의 댓글