input & output

読書系ブログ→Pythonで競プロ過去問解説

【AtCoder】ABC157 B - Bingo

問題

atcoder.jp

考え方

input データの処理

B問題ではあまり見ないような形式(な気がする)。A は正方形の行列として受け取っても良いし、行ごとに分けて取り込んでも良い(解答例では分けて取り込んだ)。

b は1行ずつ表示されているが、まとめて list にしてあげた方が後々処理しやすいので、 for ループ(リスト内包表記)で list 化する。

選ばれた数をAに反映させる

b のリストを for ループで回しつつ、A の各リストに同じ数字があるかどうか判定した。もし一致した場合には、一致した箇所を「0」(ゼロ)に変更するようにした。◯とかXでも良いが、後々判定をするときに「0」の方が扱いやすいと思いゼロにした。

ビンゴの判定

縦、横、斜めのそれぞれについて、for や if を使って判定した。だいぶ冗長な感じだが、良い方法が思いつかなかった。

 

解答例

ABC157 B - Bingo