N問のクイズに挑戦した高橋くんの最終的な点数を求める問題です。
提出
n, x = map(int, input().split())
s = input()
for i in range(n):
if s[i] == "o":
x += 1
else:
x = max(x-1, 0)
print(x)
「o」と「x」からなる文字列Nを一文字ずつチェックしていきます。
「o」の場合は、点数xに1を足します。
「x」の場合は、1点減点なのですが、点数が0のときは減らないので、max() を用いて、「x-1」か「0」の大きいほうを点数xに代入します。
最後に答えである点数xを出力します。
max()関数
max()関数は、配列内の最大値を取得します。
max(配列)
split()メソッド
split()メソッドは、区切り文字を指定して、文字列を分割します。
区切り文字を指定しない場合、空白、タブ、改行で分割されます。
str.split("区切り文字")
map()関数
map()関数は、イテラブル(リストやタプルなど)の各要素に関数の処理を適用します。
map(関数、イテラブル)