メモジャンボ

良い感じのブログタイトル募集中

AtCoder黄色になりました

re



AtCoder Beginner Contest 147黄色コーダーになりました!競プロを始めたときは自分が黄色になれるとは思いもしませんでしたし、長い道のりでしたが続けてよかったです。
ということで、ずっと書きたかった色変記事を書きたいと思います。「○○色になるまでにやったこと」系の記事は自分が水~青の時にたくさん読んで参考にさせてもらったので恩返しの意味も込めつつ、同じように青~黄色を目指す人の参考になれば嬉しいです。



解いた問題数など

problems
ダウンロード

AtCoder ProblemsのユーザーページとAtCoder Scoresの精進グラフです。
AtCoderのほかにCodeforcesで292問、AOJで11問、yukicoderで26問、TopCoder SRMを50問ほど解いたので合わせて1250問くらいになります。

振り返り記事を書くのはこれが初めてなので、競プロを始めたところから時系列に沿って振り返ります。


競プロを始めるまで(~2018年2月)
プログラミングに初めて触れたのは、学部1年の秋学期に受講した「アルゴリズム入門」という講義がきっかけでした。言語はRubyで、プログラミング未経験者向けに0から優しく教えてもらいました。講義の後半でDP(nCrをパスカルの三角形で求めるやつ)にも触れていましたが、ふーんって感じでまだ面白さはよく分かりませんでした。その後、巷で話題のAtCoderをやってみたいと思い、友人に聞くとRubyよりC++が良いと言われたのでC++に乗り換えて競プロを始めることにしました。はじめの環境構築で死ぬほどつまずいたのを覚えています。(パスを通すって何?みたいなレベルでした)



緑色になるまで(~2018年6月)
ABCの過去問を解いてC++の文法を勉強しつつ予定が合えばコンテストに出る、みたいな感じで緑までは割とスムーズにいけました。またこの頃に蟻本を買いましたが、STLについての説明が端折られていたのでググりながら読むのが少し辛かったです。今だったら「AtCoder Programming Guide for beginners (APG4b)」をやるといいと思います。



水色になるまで(~2018年10月)
蟻本の初級編を一通り読んで中級編以降はつまみ食いしつつコンテストに参加していました。精進グラフの傾きを見ればわかるように、水になるまではあまり熱心に取り組んではいませんでした。けんちょんさんのAtCoder版蟻本が神なのでとりあえずこれの初級編をやるのがおすすめです。






青色になるまで(~2019年6月)
グラフを見ての通り水色前半で半年くらい停滞してしまいましたが、この期間にもちゃんと実力はついていたような気がします。やったこととしては、

・AtCoder300点埋め
とてもいい練習になりました。典型的なアルゴリズムの実装が早くなったと思います。

・AtCoder400点埋め
このレベルになると分からない問題が多く、自分はすぐに解説を見てACしていました。
(解説ACの是非については人によって意見が分かれるところですが、個人的には解けそうにない問題を考え続けるのが苦痛なのとできるだけ多くの問題に触れたいので、今でも少し考えてさっぱりわからなければすぐに解説を見ています。)

・AtCoder500~600点で解けそうな問題を選んで解いた
点数の割に難しい問題(いわゆる地雷?)にぶつかると心が折れがちだったのでAtCoder Scoresの「対戦者」にフレンドを何人か入れて、多く通されている問題を選んで解きました。

Codeforcesを始めた
コンテストの頻度が多くレートの変動も大きいのでスリリングな楽しさが味わえます。
AtCoderと比べると日本人が少ない海外サイトでシステムも独特なので敷居が高く感じるかもしれません。ぴーよさんとNoiminさんのブログで詳しく紹介されているのでこれらを読むと雰囲気がつかめると思います。




あと、今年の春にsimとjuppyとチームを組んでICPCに出場することになったのですが、これがモチベーションを上げてくれました。チーム結成当時は確か全員水色だったのが国内予選の時には全員青になっていたので相当効果があったんじゃないかと思います。



黄色になるまで(~2019年12月)
青になってからやったこととしては、
TopCoder SRM Div1 Easy Hunting
TopCoderというコンテストサイトの問題を50問くらい解きました。難易度はAtCoderで300~700くらいの印象でちょうどいい練習になりました。

Codeforcesのバーチャルコンテスト
これが一番力がついたと思います。
vjudgeという、いろいろなコンテストサイトから問題を集めてバーチャルコンテストを開けるサイトを使って定期的にCodeforcesのバチャ(バーチャルコンテストの略)をやりました。他の人と競うので一人で問題を解くよりも集中できてよかったです。もし興味があればグループに招待するので気軽にお声がけください。

pkf

また、自分のレートと同じくらいの難易度(Difficulty 2000前後)の問題を4問集めて2時間で解くバチャ(Mojumbo Practice)もやっていました。これは大体ABCのE~Fくらいの難易度なのですが、AtCoderだけだとどうしても数が足りなかったので練習量を増やすのにちょうどよかったです。(このくらいの難易度の問題をたくさん解いてABC-Eを早解きできるようになれば黄色が見えてくると思います。)


さいごに
今後の目標としては年内にCodeforces薄橙*1(やばそう)、来年中にAtCoder橙(ratedコンテストがたくさんほしい)を目指して頑張りたいと思います。
あと、来年のICPCはチーム全員暖色で行こうみたいな話をした覚えがあるので、チームメイトに圧力をかけていこうと思います。

最後まで読んでいただいてありがとうございました。





*1 2019/12/14追記: 達成しました!!!