AtCoderのレーティングが茶色になりました!
こんにちは、情報系学生のいもべんです。今回は茶色に上がったとのことで、これまでやってきたことや始める前の知識などを書いていきたいと思っています。誰かの励みになれば幸いです。
AtCoderを始めるまで
AtCoderに出会う前
私はプログラミングで何かを作ることがとても好きで、オセロだったりテストの問題を自動で出題してくれるものだったりを作成して遊んでいました。何かを作るには「こんな機能ほしいなー」のような思いつきが必要で、思いついたら楽しそうだから作る、を繰り返していました。
ここまで見ると凄いな思う方もいるかもしれませんが、思いつきが起きるのは稀で普段はゲームばかりして寝ての怠惰な生活を送っていました。
AtCoderに参戦
コンテスト初参加
初めてABCコンテストに参加したのはABC150です。APG4bの2章が終わった時だったのを覚えています。
Bまでしか解けなかったです
— いもべん (@iiiimmmmo) 2020年1月10日
C問題の解き方は多分わかりましたが細かいところまでわかっていなかったのが原因かなって思っています。
また次回頑張ります。 pic.twitter.com/5yraxXMGGJ
ここから何を勉強していったのだろうと思う方もいると思うのですが、まさかの何も勉強することはなくただコンテストに参加していく日々が続きます。APG4bも2章終わりでストップしてしまいます。
怠惰な性格が出てしまったんだなと思っています。だって何もせずともレートが上がっていくものですから…
レートが伸び悩むようになる
当たり前のことですが、勉強しなければそれまでの自分の実力までしかレートは上がりません。それを自覚したのが3月の中頃でした。実はなかなか忙しい時期でもあったのですが、レートが上がらないと自分としても面白くないしTwitterで繋がった他の競プロerさんに追い抜かれていくその焦りから勉強しよう!と思うようになります。
レートが上がるように努力し始める
まず最初にやったのが、環境構築です。これまでvisual studio code(以下VScode)でコンパイルから実行を行っていましたが、何かもっといいものがあるはずだ!と思い、たどり着いたのがこの記事でした。
qiita.com
この記事はVisual Studioを使って入出力を見やすくするもので、この記事を参考に環境構築を行い様々な拡張機能を追加しました。
競プロの環境構築としてVScodeのほうが検索に引っかかるのですが、なぜか自分はうまくいかないことが多くうまくいったこの環境で競プロを行っていくことを決めました。今現在もカスタマイズなどをして使っています。
伸び悩みから茶色へ
本題はここからですね。これまでの内容を読んで頂きありがとうございます。
アルゴリズムについて知る
まずレートをあげるようになるには、より多くの問題を解けるようにアルゴリズムを知る必要があると私は考えました。
ですが、ほかの方が書いたコードは追うの大変だしアルゴリズムを学んで何に使えるのか分からないしと悩みながら本屋に向かいました。
本屋でアルゴリズム関連の本をパラパラとめくりいい勉強になる本はないかと見ていくとこのような本に出合います。
www.shoeisha.co.jp
この本はアルゴリズムを現実で起こるかもしれないことに例え、それを絵と共に紹介してある本で、とても見やすく購入しました。
この本を見てどのようなアルゴリズムがあり、何に使えるのかを知りアルゴリズムへの知識を深め、章末にあるPythonの実装コードを基にc++で実装しなおして着実に知識を深めていきました。
APG4bを再開する
2章が終わって満足していたAPG4bを思い出し、また学び始めることとしました。そして3章を進めていく度「こんな便利なものが・・・」状態になりました。これまでは名前しか知らなかった機能やこう使えば簡単に実装ができることを知り、あの時途中でやめず継続していたらなと今では思っています
解けなかった問題の復習、解説放送
これはやる人にとっては当たり前だと思われると思うのですが、あまり解けなかった問題の復習をしておらずコンテスト終わったら問題どうだったかみたいな話し合いをして解説放送も見ずに寝たり他のことをしていました。今考えると解けないものを解くことで問題に対するアプローチが増えるのでやった方がいいのですが以前の私はやっていませんでした。
過去問を解くことで「どう実装するか」から「前回と同じように実装しよう」とすぐに浮かぶようになりますし、変なバグも起きなくなります。茶色に上がったコンテストでもこれを実感しました。