[白俊2579-階段を登る-Java]
6074 ワード
もんだいぶんせき
DP
時間の複雑さ
DPはO(N)問題を解決できる
インプリメンテーション
1.テーブルの定義
int[][] table = new int[300+1][2+1];
// table[i][1] = i번째 계단을 연속해서 1개의 계단을 밟고 올라온 경우, 단 현재 계단을 포함해서
// table[i][2] = i번쩨 계단을 연속해서 2개의 게단을 밟고 올라온 경우, 단 현재 계단을 포함해서
2.点火式を得るtable[i][1] = Math.max(table[i-2][2], table[i-2][1]) + stair[i]; //...1
table[i][2] = table[i-1][1] + stair[i]; //...2
つまり、現在の階段を含めて、連続して1つの階段を歩きました.つまり、2つの階段から下りた階段が相応の階段に来ています.
これは、現在の階段を含めて、2つの階段を連続して歩いたことを意味します.つまり、1段以下の階段から相応の階段に来ています.現在の階段を含めて2つの階段を連続して歩いたため、
table[i-1][2]
は考慮対象から除外された.table[i-1][2]
は既にi-1段まで連続して歩いた時の点数なので、table[i-1][2]
を考えると3段連続して歩いた場合も考えられます.table[1][1] = stair[1];
table[1][2] = -1; // 논리적으로 말이 안되는 상황.
table[2][1] = stair[2];
table[2][2] = stair[1] + stair[2];
さまよう部分
解答が見られなかったら解けなかったような…うろうろしているというより、全然解けなかった.
その他の方法
以上の講義は2つの解題方法を説明した.
バッキン監督
取得する
完全コード[マイコード-Java]
に感銘を与える
DPには近道がないようです.本当に多くの問題を解決する方法しかないようです.
リファレンス
実戦アルゴリズムを教えてあげる
Reference
この問題について([白俊2579-階段を登る-Java]), 我々は、より多くの情報をここで見つけました https://velog.io/@eden6187/백준2579-계단-오르기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol