AtCoder 茶色になりました
入茶
しばらく前にAtCoder を始め、先日ランクが茶色になりました。入茶までにしたことや、現在の私のプログラミング能力について書きます。
私について
- AtCoder アカウント
- 大学生。非情報系
- 使用言語:C++
- 登録時のプログラミング能力:2年ほど遊びと大学の課題でプログラミングに触れてきた。しかし特段上達した気はしない。基礎文法はだいたい理解していたと思う
1~2ヶ月で入茶していますが、これは単純に2年間(競プロでないにしても)プログラミングに触れていた貯金が為です。
勉強方法
前回言及したレッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 | Qiitaに従って勉強しました。
内容
前回の記事以降、次の内容を学習しました:
- 全探索:たのしい探索アルゴリズムの世界【前編:全探索、bit全探索から半分全列挙まで】 が勉強になりました
- bit 全探索
- 順列全探索
- 深さ優先探索
- 幅優先探索
- 二分探索:上に同じ
- 手で実装
lower_bound
関数
- いくつかの STL:アルゴリズムの勉強や ABC の過去問を解く中で知ったものを学習。上の記事の中編からチョイスすると↓な感じ
abs
,sin
,cos
,tan
,string
,min
,max
,vector
:既に知っていたものたちswap
,reverse
,sort
,queue
,map
,set
,lower_bound
,next_permutation
:初耳のものたち
ちなみに、set
を初めて知ったときはあまりの便利さに感動しました。
方法
学習して知ったことはノート1にまとめています。学校でのお勉強の経験上、手を動かすだけで定着が良くなるのと、後で復習できるからです。
上の内容を学習する傍ら、ABC の過去問(A-D 問題のみ)を新しいものから10回分ほど解きました。これは、不足の基礎知識を身につけるのと、ABC の問題に慣れるためです。これだけで問題を解く時間が短くなりパフォーマンスが向上しました。
アルゴリズムの解説記事にはたいてい練習問題も付いているので、できるだけ解くようにしています。手を動かす(略。また、実際に解いてみて、初めて理解できたり勘違いに気づいたりしたことが多かったからです。
その他
- 始める前は、競プロは初心者お断り感があると勝手に思っていたのですが、全くそのようなことはなく、寧ろ初心者歓迎の雰囲気があり驚きました。AtCoder 公式から C++ の基礎講座も出てますし
- 上に関連して、「AtCoder はインフレを起こしており、茶色になるのがより大変になっている」という話を聞くことがあります。私は初心者なのでその是非は分かりません。しかし、初心者向けの解説記事が充実しているので恐れることはないんじゃないかなーと思っています
-
ちなみに私は紙のノート派です ↩