【入緑】非情報系が4ヶ月で緑色コーダーになるまでにやったこと - AtCoder
はじめに
この記事はこれから緑色を目指す方に向けて書かれた「入緑体験記」であり、あくまで感想です。
自己紹介・AtCoderを始めた理由などは入茶の時に書いたnoteにまとめているので、興味を持っていただいた方はご覧ください。
レートの推移
本格的に勉強を開始した4月から毎回+50を目標に掲げ、15回ほどのABCに出場した。
一桁しかプラスにならないような失速回もあったが、+60のように上振れる回に救われ、なんとか目標の成長スピードを茶色の間も維持することができた。
次の水色へ向けて、緑の間もどれだけ成長角度を維持できるかが勝負。このまま毎回+50を達成することができれば、9月に水色へ到達することが可能なので、9月中の入水を目標にこれからも頑張りたい。
実際にやったこと
最初の2つは入茶の時と同じことですが、一番重要かつ成果に繋がったと感じている2要素なので改めて提示している。
1. 毎週欠かさず参加する
皆さんが口を揃えて言われることですが、本当にこれが全て。
いくら調子が悪くても、勉強が足りていなくても最初のうちは毎週欠かさず参加する。
いかに早く習慣化して、自分の中での参加ハードルを下げるかが勝負です。参加しない週があると気持ち悪い、くらいまで行けたら勝ち。
2. 解けた問題+1問復習する
解けた問題は、問題に対する思考を整理するため。解けなかった問題は、構成するアルゴリズムを理解し、次に同様のアルゴリズムで解ける問題が出た時に解けるようにするために復習する。
毎週以下のようにまとめてqiitaに投稿する習慣がついているのが継続できている理由かもしれない。
3. 毎日ABC
25日ほど継続したのちに、インターン先の商談が忙しく消滅してしまった毎日ABCのC問題までを解く習慣。
AtCoder ProblemsでA問題から難易度の低い順番に埋めていきたい欲はまだ残っている。
やりたい時にやる、だといつまで経ってもやらないので、1問ずつでもOKとして毎日習慣にしたい。
4. 初中級者が解くべき過去問精選 100 問 前半
E869120さんが水色コーダーを目指す人へ向けてまとめてくださっている分野別の過去問の前半を解きました。
具体的には以下のような分野を解きました。
「競技プログラミングの鉄則」で学んだ内容を必然的に参照しなければ太刀打ちできない問題も多く、そろそろ復習したいと感じていたので良い機会になりました。
全探索:全列挙
全探索:工夫して通り数を減らす全列挙
全探索:ビット全探索
全探索:順列全探索
二分探索
深さ優先探索
幅優先探索
動的計画法:ナップザックDP
動的計画法:区間DP
最短経路問題:ダイクストラ法
最短経路問題:ワーシャルフロイド法
最小全域木問題
これからやりたいこと
1. 2. 毎週ABC参加・振り返りqiita投稿
これまでの延長ではあるが、核となる毎週ABCへの出場とその振り返りqiitaの投稿は続けていきたい。これらさえ崩れなければ大きくコケることはない。
3. 毎日ABC
入茶後30/60日くらいできたと考えればそこそこ継続した習慣なのかもしれないが、せっかくやるなら毎日の習慣にしたい。
出来た日とできなかった日があると自信にもならないし、何よりムズムズして気持ち悪い。
4. 初中級者が解くべき過去問精選 100 問 後半
以下のジャンルがまだ残っているので、前半の復習も行いながら、8月末を目安に終わらせたい。
動的計画法:bit DP
動的計画法:その他
高速な素数判定法
高速なべき乗計算
逆元を使う問題
累積和
Union-Find
その他のテクニック
実装問題
数学的な問題
まとめ
目標であった7月中の入緑を達成し、目指すは次の水色。
成長角度を維持し、9月中の入水、さらには今年中の青色への到達を目標に頑張りたい。
また9月に入水の記事を書けることを楽しみに、引き続き精進します。
目指せレッドコーダー。