プログラミング筋を鍛えるためにAtCoderで競技プログラミングやるよ、と宣言したので、初めてAtCoder Beginner Contest 096に参加しました。
やってみた結果はというと、Bまでしか解けず、かつBのサブミットで何度もミスしてしまい、散々な結果に・・・。「ビギナーだしBまで解けるでしょ」と思っていた自分を過去に戻って諭したいです・・・。
初めて参加してわかったこと
コード提出の練習は充分しておくこと
まず、「よっし、手元のユニットテストもパスしたし、これで提出だ!」と思って提出してもWA(不正解)になるパターン。
よく見てみると、自分の実装ミス以外にも、余計な標準出力処理(デバッグ時に入れておいたやつ)が残っていて不正解になっていました・・・。
この手の不正解は本当に勿体無いので、自分がコード書いてテストして提出するときに、余計なものが残っていないかのチェックなど慣れておく必要がありそうです。
コード資産がものを言う
今回時間が足りなくて解けなかった要因の一つが、問題として与えられる標準入力の値を読み込む処理をその場で書き始めた結果、うまく読み込めなかった、です。。問題Cのマス目データを読む処理がうまくいきませんでした・・・。
また、問題Dの素数まわりも、篩なりを事前に作っておけば流用して使えたはず。その場で「あんな処理が必要だ」と思いつくところまではパッとできるのですが、全部をその場で実装していると時間が足りない&バグがあって失敗するので、素数判定や、標準入力の読み取りなど、今後も使うような処理はコード資産として事前に作っておくのが絶対必要だなと反省しました。
事前の調査や準備をもっとしとけばよかった
コード資産の件とかぶりますが、先人がいろんな情報を残してくれているので、もっと下調べをしておけばよかったなぁと反省です。
これから初めてやる方は以下あたり読んどいたほうがいいです。
ものすごく悔しいので4問正解するまで続けます
Twitterでもめっちゃボヤいてましたが、コレ解けないで100分終えるの本当に悔しい。解法は頭に浮かんでいるのに!とか、思ったことをコードで実現できないってもう悔しくて苦痛でしょうがないです。。
なので、4問正解できるように練習&コード資産の準備をして、うまくいくまでやってやろうと思います。
こんなもんじゃ終わらないですよ・・・!