AtCoderを初めて一年で(半年のブランクはあったが)茶色になることができたので、自分がやったことを記事に残しておきます。
一応この記事の続き?です。挫折したとか大げさに書いてあるけど今思えばそんなことないです。ちょうど半年後に入茶できたので、有言実行できたかな?
茶色になるまでにやったこと
数学
まず、問題文や解説をしっかり読めるようになるように数学を勉強しました。問題の制約や解説の計算式がわからなかったので(シグマとかlogとか)、集合などの勉強はしっかりやりました。
数1Aと2Bの白チャートを一通りやったら、大体は理解できるようになりました。プログラミングと数学は切っても切れない関係ですね。
過去問を解く
いわゆる精進というやつですが、最初のうちはABCのA,Bを繰り返しやりました。大体Bまでを10分で解くのを目標に早解きも意識してました。A,Bがスムーズに解けても、C問題はやはり壁でした。今でも茶diffの簡単なものぐらいまでしか解けませんが、レートが200ぐらいのときが一番難しかったです。アルゴリズムを知らないので、入力を受け取るコードを書いてから手が進まないのです。ネットでいちいち検索するのでは身につかないと思ったので、E8さんの「競技プログラミングの鉄則(通称鉄則本)」を買ってアルゴリズムを覚えました。
自分が使えるアルゴリズム
今自分が使えるアルゴリズムは茶色コーダーとしては少ないんじゃないかなと思います。最近ABCの問題自体難しくなってきているので、Cが解けないこともけっこうあります。アルゴリズムといえるかも怪しいものもありますが...
結構理解してるアルゴリズム
- 全探索
- 累積和
- ソート
簡単なものなら使えるアルゴリズム
- 二分探索
- DP
- BFS
- DFS
他の茶色コーダーをみるとこれらを使いこなしてる方々はたくさんいるので、まだまだ勉強が足りないなと思います。CやDを解くためにはもっとアルゴリズムを使いこなせないといけないですね。
最後に
自分が何もわからないところから入茶までできたのは、やはり競プロが楽しいからだと思います。自分のような普通の中学生にとって、同年代のすごい人や年上の人と競争、交流できるというのはとてもいい経験になります。あとは、問題が解けた時の達成感はなかなか他では味わえないものですね。最近は前に比べて難しいという雰囲気がありますが、もっと競プロerが増えるといいなと思います。