#方針
①長さNの、値に空リストを持つ辞書を生成する。
②第p問の回答状況を、keyをpとしてvalueの中にリストで格納していく。
③それぞれの値リストについて、'AC'が少なくとも一つ入っていれば、初めて'AC'が出たところまででリストをスライスする。
④それぞれの値リストについて、'AC'が一つも入っていなければ、特に何もしない。
⑤スライスされた/そのままのリストから、'AC'と'WA'を数え上げ、ac, waに足す。
#該当コード
Python
1N, M = map(int, input().split()) 2 3dic = {} 4 5#① 6for i in range(1, N + 1): 7 dic[str(i)] = [] 8 9#② 10for i in range(M): 11 p, S = map(str, input().split()) 12 dic[p].append(S) 13 14ac = 0 15wa = 0 16for i in range(1, len(dic) + 1): 17 #③④ 18 if 'AC' in dic[str(i)]: 19 first_ac = dic[str(i)].index('AC') 20 dic[str(i)] = dic[str(i)][: first_ac + 1] 21 #⑤ 22 ac += dic[str(i)].count('AC') 23 wa += dic[str(i)].count('WA') 24 25print(ac, ' ', wa)
#質問
方針の通りに従ってプログラムを組み立てたつもりだったのですが、結果としてはWrong Answerが表示されました。第p問で一つも'AC'が出なかった場合など、起こりうることは記述しきったつもりでしたが、どのような箇所に不足が考えられますでしょうか。幾分雑な質問となってしまいましたが、素人故ご容赦ください。どうぞよろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー