質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1418閲覧

AtCoder / Python エラー箇所が見当たらない

kay_ventris4

総合スコア269

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/04 14:44

#問題
イメージ説明
イメージ説明
AtCoder ABC151 C問題より

#方針
①長さ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'が出なかった場合など、起こりうることは記述しきったつもりでしたが、どのような箇所に不足が考えられますでしょうか。幾分雑な質問となってしまいましたが、素人故ご容赦ください。どうぞよろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/04/04 15:01

> 第p問で一つも'AC'が出なかった場合など、起こりうることは記述しきったつもり 上記状況は起こり得るんでしょうか?
kay_ventris4

2021/04/04 15:06

問題文の「高橋君のペナルティ数は、高橋君が AC を 1回以上出した各問題において、初めて AC を出すまでに出した WA の数の総和です。」の意味を取り違えていました。ご指摘ありがとう御座いました。修正後、正解を確認しました。
guest

回答1

0

自己解決

「高橋君のペナルティ数は、高橋君が AC を1回以上出した各問題において、初めて AC を出すまでに出した WA の数の総和です。」の意味を取り違えていました。
第p問への提出が全て不正解のまま第(p + 1)問に飛んだ場合、第p問では一度もACが出ていないのでペナルティは0でした。
お騒がせしました。

投稿2021/04/04 15:08

編集2021/04/04 15:09
kay_ventris4

総合スコア269

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問