AtCoder初めてやってみた
どうも、ざわほげです。今日は初めてAtCoderのコンテストに出ました。全然納得の行く結果が出なかったのですが、今後の糧のために記録として記事に残します。
AtCoderとは、制限時間以内にプログラミングの問題を解くコンテストを開催しているサイトです。
今回は、日曜夜に開催されるAtCoder Beginner Contest 152に参加しました。ABCコンテストと呼ばれるAtCoderの中でも易しい方のコンテストです。
制限時間は100分で、A~Fまでの全6問あります。後半になればなるほど難易度が上がり、獲得する点数も上がっていきます。
結果
正直なところ、自分としてはかなり残念な結果になりました。しかし、ここで記事にしないでスルーするのも違うと思うので正直に載せることにします。
まず、結果だけ載せると6問中3問正解で終わりました。
(追記:この記事だとめちゃくちゃ悲観的に書いてますがまずまずの結果のようです。相場感わからず書いてるのでご了承下さい)
A~Cまでは35分ほどかかりました。問題AがM==Nの時にYes、そうでない時にNoと出力させるプログラムを書けば良い非常に簡単な問題だったのですが、なぜかYesの時にもNoがくっついて来る凡ミスをかましたため、1WA(wrong answer?)がついてます。
何にせよ、1時間残った状態であと3問解けば良い状況になり、初めてにしては上出来だろうと調子に乗ります。
その結果、問題Dにどハマり。
ぱっと見はそこまで難しく感じなかったのですが、条件分岐が複雑になる解法を試みた結果時間がかかりました。しかも、入出力の例として記載されている答えと一致せず、時間だけが過ぎていきます。
問題Dが解けなければ問題E,それでもダメなら問題Fを解け、と大学受験の頃の私なら当然のようにやっていたことも、「問題Dが解けないで先に進んで良いのか?」と無駄なプライドを発揮し、結局解けずに終わってしまいました。
反省
解けない問題は一旦飛ばして、別の問題に取り組んでからもう一度戻って来る。試験の時の基本をすっかり忘れていました。
解けない問題をいくら時間かけても袋小路に入れば解けないものなので、むしろ他の問題に手をつけた方が頭がリセットされて解法が思いつくことが多いです。
私が持たなければいけなかった精神は、「解けない問題があっても全然良くて、次は絶対解けるように復習すれば良い。他の問題を解こうとする経験を増やした方が結果的にお得」です。
過去に競技プログラミングっぽいこととしては唯一Project Eulerをやるくらいの私でした。Project Eulerはいくら時間をかけても正解を入力すれば良いサイトだったので、時間に拘らずに解くことができます。しかし、AtCoderは制限時間が設定されており、そこはシビアに判定されます。速度も大事ですので、ざっと他の問題を眺めておくべきでした。
まとめ
全く納得できない結果だと最初に述べましたが、こうしてnoteを書いてみると、こうなるのも当然だという考察になりました笑
毎週ABCコンテストは開催されているようなので、今後も参加して報告するように心がけたいです。
いやーなかなか思った通りには行かないね。
ツイッターもやってます。
よろしければサポートお願いします!本の購入などに充てます!