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

abc139c

コンテスト一覧へ

 

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】解説記事リスト

コンテスト一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。