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 |





최근댓글