AtCoder ABC 173 B – Judge Status Summary Python解説
Judge Status Summary
高橋君は、プログラミングコンテスト AXC002 に参加しており、問題 A にコードを提出しました。
AtCoder Beginner Contest 「Judge Status Summary」
この問題には N 個のテストケースがあります。
各テストケース i (1≤i≤N) について、ジャッジ結果を表す文字列 Siが与えられるので、ジャッジ結果が AC, WA, TLE, RE であったものの個数をそれぞれ求めてください。
出力形式は、出力欄を参照してください。
今回の問題では入力がAC,WA,TLE,REのいずれかの文字が与えられます。入力される文字が分かっているので条件文で場合分けをしたり、連想配列を使った解き方ができます。
n = int(input())
c1, c2, c3, c4 = 0, 0, 0, 0
for i in range(n):
s = input()
if s == "AC":
c1 += 1
elif s == "WA":
c2 += 1
elif s == "TLE":
c3 += 1
else:
c4 += 1
print("AC x {}".format(c1))
print("WA x {}".format(c2))
print("TLE x {}".format(c3))
print("RE x {}".format(c4))
あらかじめAC,WA,TLE,REをカウントする変数を用意しています。あとは入力された値を場合分けしてカウントアップするだけです。
n = int(input())
dict = {"AC": 0, "WA": 0, "TLE": 0, "RE": 0}
for i in range(n):
s = input()
dict[s] += 1
for k, v in dict.items():
print(k, "x", v)
上記のコードは連想配列を使った解き方です。あらかじめAC,WA,TLE,REをキーにした連想配列を準備しています。
n = int(input())
s = [input() for _ in range(n)]
for i in ["AC", "WA", "TLE", "RE"]:
print("{} x {}".format(i, s.count(i)))
上記のコードは入力される値を配列sに格納し、あとはcountメソッドで配列sにAC,WA,TLE,REがいくつあるのかを出力しています。