白俊2579号です.階段を登る
这是白俊2579号。登上阶段
분명 글을 써뒀는데 없어졌다...
1.質問
階段を登るゲームは階段の下の起点から階段の先端の終点までのゲームです.図1>に示すように、階段ごとに一定の点数が書かれており、階段を踏むと階段の点数が得られます.
<図2>に示すように、始点から、第1、2、4、6段の階段を歩いて終点に着き、合計10+20+25+20=75点となる.
階段を登るには以下のルールがあります.
そのため、最初の階段に沿って、2番目か3番目の階段を歩くことができます.しかし、最初の階段を踏んで4番目の階段を登ったり、最初の階段、2番目の階段、3番目の階段を連続して踏んだりすることはできません.
2.入力
3.出力
4.解答
d[i-2], d[i-3] + arr[i-1]
比較する.5.最初のコードと異なる点
6.コード
#include <iostream>
#include <algorithm>
using namespace std;
int stairs[300] = { 0 };
int d[301] = { 0 };
int main() {
int k;
cin >> k;
for (int i = 0; i < k; i++) {
scanf("%d", &stairs[i]);
}
d[0] = stairs[0];
d[1] = stairs[0] + stairs[1];
d[2] = max(stairs[0] + stairs[2], stairs[1] + stairs[2]);
for (int i = 3; i < k; i++) {
d[i] = max(d[i-2], d[i-3]+stairs[i-1]);
d[i] += stairs[i];
}
cout << d[k - 1] << endl;
}
Reference
この問題について(白俊2579号です.階段を登る), 我々は、より多くの情報をここで見つけました https://velog.io/@e7838752/boj2579テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol