AtCoder緑になったので今までの振り返り

f:id:opzriv:20210328155745p:plain

この記事を書く理由

今までしてきたことの記録を残して整理するいい機会なので。他人が見ても参考になる部分は少ないかもしれない。

ちなみに私は、あと4日で修士課程に入る現在大学4年生(理系)。

始めた・辞めたきっかけ

2019年2月 初登録

2019年の2月ごろに初めて登録した。そのころのアカウントもPCももう無いので記憶に頼るしかないが、確か2回くらいコンテストに参加して辞めてアカウントも消した。始めた理由はおそらく存在を知って興味を持ったから。辞めた理由は、たぶん解けなくてつまらなかったから。

2020年5月 2回目の登録

しばらく個人的な趣味で色々開発していたが、放任研究室にコロナが重なり、最高に暇になった時、競プロの存在を思い出した。当時のメモには

ただ単に使える知識を持っていないから(競プロの)必要性を感じていないだけなのかも。使おうと思えばいくらでも使う場所があるのかもしれない。

と書いてあった。これは、当時読んでいた「コンピュータシステムの理論と実装」に書いてあった

発見の旅とは、新しい景色を探すことではない。新しい目を持つことである。 マルセル・プルースト

に影響されたものである。

こういった目的意識と、あと何より暇だったこともあって習慣になった。茶色になった。

9月ごろ、ようやくうちの研究室でも卒業研究が始まって、競プロは一旦休止した。

2021年3月 卒論を終えて再開

無事卒業することができて、また暇になった。

緑の一歩手前で止まっていたむずがゆさを思い出して、再開しようかな~と思っていた矢先、テレ東のYouTubeチャンネルで競プロが特集されているのを知った。この中で社長さんが「誰もやったことのないをやるためには基礎体力として役に立つ」みたいなことを言っていた。

これに感化されてまた始めた。再開していきなり、過去2番目のパフォーマンスを出すことができて、緑になった。

www.youtube.com

やったこと

AtCoder Problemsで探した自分が解けそうで解けないくらいの難易度の問題を解いていた。解けなかったら日付と問題をエクセルに記録して、時間がたったらまた解くようにした。解けるまで繰り返した。

使用言語はPython -> C++ -> Python の順番で推移した。最初はPythonの方が読みやすいし普段使うのでPythonにした。Pythonだと正攻法でTLEになる問題に遭遇してから、C++を使うようになった。しかしまたしばらくして、そんな問題はあんまりないし、C++読みにくいし書きにくいし、趣味でも研究でも書かないし、PyPyとして出せば速い、となったのでまたPythonに戻った。

再開したあと、Pythonでテストコードをテストするときに、「AtCoder Unit Test」という拡張機能を使うことにした。

chrome.google.com

少しだけ自分用にカスタマイズした。

github.com

AtCoderやって良かったこと

  • 自分のコードが読みやすくなっていった。これは、自分のコードと他人のコードの比較をたくさん出来たからである。開発でも他人のコードは読むが、基本的に自分と同じことはやってないため「こんなに短く見やすく計算少なく書けるとは!」みたいな衝撃はあんまりなかった。
  • プログラムの処理の流れを頭の中でイメージしやすくなった。頭の体操になった。
  • 達成感を得られた。実力がはっきり数値化されているので、分かりやすかった。
  • 集中して物事を考える時間を取ることができた。普段から考えてないわけではないが(多分)、コンテスト中の制限時間ある中での思考は、それ以外の場面では体験することのないものだった。脳汁が出てる感じがした。
  • 趣味の開発で、dfsを一回だけ使った。競プロの知識が直接役に立った唯一の瞬間であった。

AtCoderやって良くなかったこと

  • 同じ大学の人と勝手に比較して落ち込んだり喜んだりした。ランキングをだらだら見てる時間は一番無駄である。所属欄を空白にした。

今後

未定。楽しいのでやりたいけど、他にもやりたいことがあるので。優先順位~

atcoder.jp