BOJ 2579 c++

Algorithm / / 2020. 7. 15. 15:48

BOJ 2579 계단 오르기

백준 2579


#include <bits/stdc++.h>
using namespace std;

int score[30005];
int d[30005][3];

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> score[i];
    if (n == 1) {
        cout << score[1];
        return 0;
    }
    if (n == 2) {
        cout << score[1] + score[2];
        return 0;
    }
    //d[i][j]가 있을 때, i는 현재 계단, j는 연속해서 오른 계단 개수
    d[1][1] = score[1];
    d[1][2] = 0;
    d[2][1] = score[2];
    d[2][2] = d[1][1] + score[2];
    for (int i = 3; i <= n; i++) {
        d[i][1] = max(d[i - 2][1], d[i - 2][2]) + score[i];
        d[i][2] = d[i - 1][1] + score[i];
    }
    cout << max(d[n][1], d[n][2]);
}

'Algorithm' 카테고리의 다른 글

BOJ 1463 c++  (0) 2020.07.15
BOJ 1149 c++  (0) 2020.07.15
BOJ 11726 c++  (0) 2020.07.15
BOJ 9663 c++  (0) 2020.07.14
BOJ 1182 c++  (0) 2020.07.14
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom