【ABC139 C】「Lower」を解く【Python3】

abc139c

「AtCoder」解説一覧へ

N個のマスが一列に並び、右隣のマスの高さが今いるマスの高さ以下である限り移動できるとき、最大で何回移動できるかを調べる問題です。

提出
n = int(input())
h = list(map(int, input().split()))
ans = 0
stp = 0

for i in range(1, n):
    if h[i] <= h[i-1]:
        stp += 1
        ans = max(ans, stp)
    else:
        stp = 0

print(ans)

i番目のマスの高さが(i-1)番目のマスの高さより低いかどうか調べていくことで求めることができます。

1番目は調べる必要がないので、それ以降で移動できた回数(stp)を1つずつ足していきます。

毎回「ans」と比較して大きい方を代入しておくと良いです。

(i-1)番目のマスの高さより高い場合には、「stp」をリセットします。

最後に「ans」に入っているものが答えです。

【ABC139】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です