考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC052-B - Increment Decrement を解く

ABC052-B - Increment Decrement

 

条件を満たしたときに加算・減算するのは問題ないと思う

最終的な値を出力するのではなく、最高値を出力することに注意

 

加算・減算後に最高値を随時更新していく方法が簡単かと思われる

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
N=int(input())
S=input()

c=0
mx=0

for x in S:
  if x=='I':
    c+=1
  elif x=='D':
    c-=1

  # 最大値を保存
  mx=max(mx,c)

# 出力
print(mx)

 

以下のコードは最大値を更新する処理である

# 最大値を保存
mx=max(mx,c)
 
上記のコードは以下のように書く方法もある
# 最大値を保存
if mx<c:
  mx=c

前者の方が短く書ける上に、不等号の向きを間違えたり、といった

コーディングミスの心配もないのでオススメだ

 

提出結果はACでした