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

AtCoder を始めてから 11 ヶ月、ついにレーティングが黄色になりました。年内は厳しいと思っていたので、自分でもとても驚いています。

というわけで恒例の「なるまで記事」を書くことにしました。 今回は こちらの記事 のスタイルを パク 参考にし、時系列順に振り返ってみます。

AtCoder を始めるまで (〜1 月)

そもそも私がプログラミングを始めたのが 2017 年の 4 月、大学に入って間もなくでした。

某ロボットサークルに入った私は、人生初めてのプログラミング言語として C++を叩き込まれました。他の言語の構文を知らないので C++が難しいのかもよく分からないまま、11 月頃には初歩的な構文は一通り習得しました。 ただサークルでは回路屋だったので、プログラムをイジるようなことはあまりしませんでした。

アルゴリズムに初めて本格的に触れたのは、10 月から始まった大学の講義「アルゴリズム入門」です。Ruby でソートや簡単な動的計画法などを実装する講義でしたが、メインがプログラミングに触れることだったので正直内容は薄めでした。それでもプログラムを書く楽しさを知る一因となったのは間違いないです。

緑になるまで (1〜2 月)

そんな私が AtCoder に登録をしたのが、確か 2018 年の正月です。何がきっかけで AtCoder の存在を知ったのは自分でも分かりませんが、帰省中の暇つぶし程度の感覚でちょっと問題を解いたりしました。

それから 4 回コンテストに出場して緑になりました。 AtCoder を始める前から、緑レベルの実力はあったと思われます。

水色になるまで (2〜3 月)

それから ABC で 2 回に渡ってレートが停滞します。 D 問題が解けてないので致し方なしです。

一方で 3 月の頭頃から AtCoder の過去問埋めが加速し、3 月中に 100AC 弱ほどしたりしました。

それで問題に慣れたのかは分かりませんが、それ以降調子の良い回が続き、AGC022 で水色になることができました。

ちなみに私は水色になるまではずっと ABC に参加していました。C でもなぜ解けているのかよく分かっていなかったレベルなので、当然と言えば当然です。実際水になってからの初 ARC でも、安全を優先して ABC に出るか悩んでいました1

青になるまで (4〜5 月)

この頃から大学で新学期が始まったのですが、1 年の頃に比べてかなり講義が減りました。というわけで精進のペースが上がります。 下の図は AtCoder Problems の Daily Effort ですが、4 月から 7 月にかけてエグいことになってるのが分かるかと思います。一番多い日で 50 問解いてます。

なぜ 1 日でこれだけの問題を埋められたかというと、 講義中にも精進していたのもありますが 主に ABC-A~C などの下埋めをしていたためです。 正直下埋めは、より難しい問題を解けるようになる効果は低いです。それでも様々な問題パターンを知り、何より精進の習慣がついたという点では決して無駄ではなかったと思います。

それが功を奏してか、CD を早く通せるようになったのと 2 回の AGC が上手いこと噛み合い、2 ヶ月で青になることができました。

2 つの変化

この頃から、競プロにおいて個人的に 2 つの変化がありました。

まず 1 つ目は、AtCoder 以外のサイトにも手を出し始めたことです。 AOJ-ICPC やら Codeforces にも手を出し、後者では青になっています。 どちらも AtCoder とは異なり実装が重い問題が多いので、良い精進になると思います。特に Codeforces はコンテストの開催頻度がそれなりに高いのでモチベ維持に役に立つと思います。ただし開催時間が非健康的なのと、Hack システムで精神がやられがちなので注意が必要です。英語については諦めて勉強しましょう。

そして 2 つ目は、Twitter で競プロ er との繋がりが増えたことです。この頃から競プロ er のフォロワーがとても増え、人々の精進が目に見えるようになりました。それに加えて、上のように成功に対してリアクションが来るのが大きくモチベに繋がりました。 「モチベが続かない」という方は、競プロ er を探してフォローしまくるのもオススメです。ただ変態的な伸びをする人も少なからずいるため、自分と比べて落ち込まないように注意しましょう。

黄色になるまで その 1 (6〜7 月)

青になれたは良いものの、当然ながらここからレートを上げるのがとても厳しくなります。それでも AGC で成功を積み重ねて、なんとかレートを伸ばしていきました。 加えて、Codeforces 紫もこの時期に達成しています。

ブログ始めました

そしてこの時期からの大きな変化として、 解説記事 を書き始めたことが挙げられます。まさにこのブログ2 です。

「解説記事なんて書くだけ時間の無駄だろ」と思っていましたが、いざ書いてみると上手く説明するために解法や実装が洗練され、気づいていなかった注意点にも目を向けるようになりました。特に実装面における改善は大きいものがあったと個人的に思います。

黄色になるまで その 2 (8〜10 月)

7 月中旬まではその後の時期は主に 2 つの理由により競プロモチベが大きく落ちていました。

1 つ目は、6 週間にかけて AtCoder の Rated コンテストがなかったことです。大きい大会3 が集中していたため致し方ないのですが、やはりレート上昇が最大のモチベ源なので、どうしてもモチベは落ちます。

さらに、その後開かれた ARC が 2 回連続で D 問題に 700 点が置かれるという異常配点だったのが追い討ちをかけました。

そして 2 つ目は、過去問で簡単に解ける問題がほぼなくなったことです。これは本来良いことなのですが、AC を取れるペースが格段に落ちるためモチベは保ちづらくなります。解説を見るタイミングというのも大きな悩みのタネで、その辺が大きな精神的負荷になっていました。未だにいつ解説を見るべきなのかがよく分かっていません。

黄色になるまで その 3 (10〜11 月)

そんなこんなで長らく停滞をしていましたが、ある時期から AtCoder Scores を下から埋め始めました。主に残っているのは癖がある企業コンの問題ばかりでしたが、それでも 400 点以下は全部埋めました。それが発端となり、ちょっと競プロのモチベが回復し始めました。

それが功を奏したのかは分かりませんが、 Tenka1 Programmer Contest で人生初の赤パフォを出し、一気に黄色に届きました。正直自分が一番驚きましたし、未だに黄色になれた実感がないです。

ちなみに黄色になれた時点で解いた問題数ですが、 AtCoder で 900 問強、他のサイトを入れたら 1200 問程度かと思われます。その半数近くが虚無埋めなので、黄色にしては少ないと思われます。

橙になるまで (11〜?月)

こんな感じで AtCoder 黄色という大きな目標を達成できたわけですが、正直黄色にしてはまだまだ精進不足という気しかしていません。Codeforces も青と紫を行ったり来たりという状況なので、そちらも早く黄色(薄橙?)に乗せたいところですね。

というわけで当面の目標は AtCoder 橙となります。達成するのがいつになるかは検討もつきませんが、そのときは今回みたいに記事を作る予定です。 というわけでここまで読んでいただきありがとうございました。それではまた「橙になるまで」記事で会いましょう4


  1. (追記) この頃の ABC/ARC は同時開催で、 ABC の 3,4 問目と ARC の 1,2 問目が共通でした。問題数はどちらも 4 問です。
    ABC は 1200 まで Rated だったので、緑までは ABC と ARC のどちらに出るかを選ぶことができました。 ↩︎

  2. (追記) この記事は、はてなブログでかつて運用していた「Mister 雑記」というブログの記事を移植したものです。 ↩︎

  3. GoogleCodeJamTopCoderOpen など ↩︎

  4. (追記) 2020 年 1 月に橙、2021 年 5 月に赤になりました。どちらも記事は書いていません。 ↩︎

Built with Hugo
テーマ StackJimmy によって設計されています。