AtCoderで緑になるまで

はじめに

tnodino(@tnodino)です。AtCoderで緑になることができたので、緑になるまでを振り返ろうと思います。

f:id:tnodino:20201230115811p:plain

AtCoderを始める前

基本的に不勉強で遊びまくってました。ITの知識も全くなかったのですが、IT業界への就職を志望していました。そして全くプログラミングができない中、パズル感覚でできそうな競プロが面白そうだと思い、始めてみました。

初参加

始めた段階で大会が近頃開催されることを知り、覚えたてのC言語で勢いで出てみました。初参加はABC169で A問題 だけ解けました。C問題 も挑戦したのですが、「小数点の計算だけなのになんで間違うんだ?」と文句を言っていたと思います。

f:id:tnodino:20201230124520p:plain

 

過去問精進

過去問を解くのがいいと聞いたので、ひたすら過去問を解いていました。この時、Pythonについて知りました。全く知らなかったPythonですが、型宣言やinclude宣言がいらず、個人的にはすごく書きやすいと思いました。そのままPythonでの書き方を覚えるために灰問題をひたすら解きまくりました。

その後は、色々な問題を解いてDPやアルゴリズムの使い方を覚えたと思います。Atcoder Problemsで解けていない問題を解いて、緑色で埋まるのが嬉しかったので暇なときは解くようにしていました。

ここまで不勉強でアルゴリズムや数学の知識がなかったので、解説ACが多いです。解けないものは解けないので諦めて解説をみるように妥協していました。解説を見たら、その問題を他人にざっくり説明できるようになるまでは理解するようにしています。すぐに理解できないくらい難しい場合は、いくつもの記事を参考にしたり、計算で検証したり、コードにコメントを書きながら実装しています。

Streakは繋げていません。好きな時に好きなだけやっています。

Twitter

AtCoderを始めてから競プロようのTwitterアカウントを作りました。その時はITリテラシーがなかったのでカモと思われていたのか、DMで怪しい勧誘が多く来てたのであまりTwitterを見ることはしませんでした。

しかし同じように精進したり、分からないところを聞きあえる仲間というのはかなりありがたいものです。難易度が高い問題を解くときややる気がないときにかなりモチベに繋がりました。

コンテストが終わった後には、みんなが浮上して盛り上がるので見てるだけでも楽しいです。頑張って色変したときにはお祝いしてくれるので嬉しいです。

コンテスト中

まずは問題をちゃんと読みます。A問題、B問題辺りは早解きを意識しているので結構ざっくり読みますが、ここでミスをしてペナルティーをくらったことがあるので、ちゃんと出力があっているか確認はしています。

制約にも気を付けます。値が小さかったり大きかったり、何の文字で構成されているかだったり、そこから問題と絡めてどうやって解くかを考えます。

解き方が思いつかない場合、検索を使って公式がないか調べたり、図に書いてみたり、色々なことを試してさらに考えていきます。過去問に似たような問題があった場合、その解き方がこの問題に利用できないか試すこともあります。

あとは時間いっぱいまで諦めないことです。どうしても無理そうな時は諦めますが、解けそうなときはぎりぎりまで粘っています。

さいごに

現在の精進した成果です。

f:id:tnodino:20201230134226p:plain

正直、ここまで続いて緑になれると最初のころは思っていませんでした。Pythonも結構書けるようになったり、いろいろなことを知れて、AtCoderをやってよかったなと思います。

人生を変えてくれた競プロ、AtCoderに出会えて本当に感謝しています。