【ABC052 B】「Increment Decrement」を解く【Python3】

abc052b

「AtCoder」解説一覧へ

長さNの文字列Sを受け取り、「I」「D」で別の操作を行った結果を出力する問題です。

提出
n = int(input())
s = input()
x = 0
ans = x

for i in range(n):
    if s[i] == "I":
        x += 1
        ans = max(ans, x)
    else:
        x -= 1

print(ans)

xとans(答え)の変数も作っておき、初期値を代入しておきます。

for文を使って文字列を一つずつ処理していきます。

「I」の場合はxが1増え、「D」の場合は1減ります。

xの値がこれまでの最大値になる可能性があるのは「I」の時のみなので、この時にansとxの大きさを判定し、ansに代入します。

すべての文字列を処理し終えたら、操作中にxがとる値の最大値がansに入っているはずなので、ansを出力します。

max()関数

max()関数は、配列内の最大値を取得します。

max(配列)

【ABC052】解説記事

「AtCoder」解説一覧に戻る

コメントを残す

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