ぶちのブログ

競プロとCTFが趣味なWebエンジニアのアウトプットの場

AtCoder水色になるまでにやったこと

 

はじめに

f:id:betit0919:20190331204434p:plain

 

今年の頭から本格的に競技プログラミングに取り組み始めて、先日のAtCoderのコンテストで水色の仲間入りを果たしたので、思ったことを書きます。

 

レートを上げるためには

レートを上げるためには「コンテストに出る」ことが最も重要だと思います。コンテストに出ないとレートが上がらないという意味にとどまらず、実力をつけるためにもコンテストはできる限り出たほうが良いです。

 

コンテストに出続けるためにやったこと

1. サークルの競技プログラマーと競い合う

学生時代にはバドミントンサークルに属していたのですが、幸運にも、そのサークルにはプログラミングを書く人が多かったので、交流しながら精進しています。現在は、水色2人、水色目前緑1人のライングループで、コンテスト前後に色々とコミュニケーションを取っています。

 

2. 会社に競技プログラミングを布教する

社内LT会で競技プログラミングについて話し、競技プログラミングコミュニティも作成しました。コミュニティで活動してるのは5~6人程度で、僕の他に緑色くらいの人が1人いる以外は、ほぼ初心者というレベル感です。

2週間に1度くらい定時後にバーチャルコンテストを開いたり、たまにSlackで質問が来たり話したり、という感じの活動をしています。実力はともかくとして、社内では競技プログラミングの人という印象も持たれているように感じます。

 

その他にやったこと

ここまでやって外堀を埋めたら、低いパフォーマンスを取るとサークル的には悔しいし、適当に取り組んでると会社的に恥ずかしいので、ちゃんとやるしかありません。

1日1ACを切らさないように、時間と体力が許す限りで一番難しい問題を選んで解いていました。蟻本は、習熟度がたりなさそうな分野の問題を適当に見繕って解くという、辞書的な使い方をしていました。コンテスト後は、実力的に解けてもおかしくなかったレベルの問題を気が済むまで復習していました。

ここらへんは、基本的に受験勉強と変わらないと思います。「日頃の勉強 + 参考書を適切に使う + 模試を受けて復習する」という習慣は身についていたので、その習慣を思い出しながら取り組みました。

結局、日々の限られた時間を使ってコンテストで良い成績をとるという行為自体が、受験勉強と似ているので、アプローチも受験勉強と同じようになると考えています。

 

まとめ

なんとかしてモチベを作って、あとは受験勉強を思い出しながら、無理しない程度に続けるのが良いと思います。モチベの作り方は、「何色になりたい」とか「何問解きたい」とかよりも、他人を巻き込んで、「この人には負けたくない」とか「ちゃんとやらなきゃいけない」とかにすると、より続けやすいと思います。

 

今後について

良い感じの習慣は既に出来上がったので、このまま無理せず続けて、あわよくば1年後くらいまでに青色になりたいです。