AtCoderの勉強を始めてから今日で約2週間経過したので、「これまでにやったこと」や「現状」を記述していく。(私はAtCoderにはC++しか使用しておりません)
超初心者なので、同じ超初心者の方の参考になると嬉しい。逆に元からアルゴリズムや計算量の勉強をしていた方の参考にはならないと思うので、もっと上のレベルの人の投稿を見るべきだと思う。あくまで超初心者の進捗報告だということを理解して記事を読んでいただきたい。
0週目. 勉強を始める前のスペック
-
情報系大学 と アルバイト でプログラミングを学んでいるが、Java や Pythonのみで、C++ は触ったことがなかった。
-
「Oracle Java Silver」を取得しているので、基礎的なプログラミング や オブジェクト指向 は理解していた。
-
アルゴリズムに関する勉強 をしたことは無かった。
1週目. C++(STL)の学習とコンテスト初参加
-
1日目(水) : 初めてC++ を見たので文法の勉強
-
2〜3日目(木,金) : AtCoder Problems で A問題 と B問題 の過去問演習をして問題慣れする。
※AtCoder Problems : AtCoder の 過去問題 が解ける有志のサイト -
4日目(土) : コンテストに初参加。結果は A問題のみを6分34秒で解き、レートは 9 に上昇。
-
5日目(日) : 用事があり、何もせずに1日が終了。
1週目は C++ と AtCoder に慣れるところから始めた。最初は 問題文を全く理解できなかったが、問題を何回も解くうちに問題文の理解スピード が上がっていった。この頃は まだB問題もほとんど解けなかった。
1週目で学んだこと
- STLはコンテスト中に調べられるので、存在だけ知っておけばOK(早解きをするレベルになったら覚えるべき)
- AtCoder Problemsが超有能
- A問題ばかりやっていないで、さっさとB問題の演習を始めた方が良かった
2週目. C++(STL)の学習とコンテスト初参加
-
6〜10日目(月〜金) : B問題の過去問演習に加え、軽いアルゴリズムの勉強を始めた。最初から動的計画法を学んだが、全く理解できなかった。理解できたのは全探索くらいだった
-
11日目(土) : 2回目のコンテスト参加。結果は A問題とB問題 を23分56秒で解き、レートは36に上昇
-
12日目(日) : ARCに参加し、A問題すら解けなかったが、レートは51に上昇
土日にコンテストの復習及びB問題の過去問演習を行い、A問題とB問題を安定して15分程度で解けるようになってきた。
2週目で学んだこと
- 動的計画法は難しいので始めたばかりの時に学ぶべきではない
- まずは比較的簡単なアルゴリズム(全探索など)を勉強するべき
- B問題になれたら、さっさとC問題の演習を始めるべきだった
3週目. C問題とABS(AtCoder Beginners Selection)
- 13日目(月) : C問題の過去問演習を始めるが、TLEを連発しアルゴリズム力の無さを痛感する
- 14日目(火) : ABSの演習を始める
(ABSとは下記リンクの、「けんちょん」という方が厳選したAtCoderの過去問である)
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
ABSは、A問題から簡単なアルゴリズムが必要なC問題まであり、C問題の解き方を学べるのでおすすめです。
3週目で学んだこと
- A問題とB問題に慣れたらすぐにでもABSを解いた方が良い
- 最初からアルゴリズムを学ぶのではなく、解けない過去問に必要なアルゴリズムを都度覚えるべきだと思った
これからの予定 と 当面の目標
予定
- ひたすらC問題を解く
- 解けないC問題は解説を見てでも解けるようにする(学んだアルゴリズムはメモしておく)
- 競プロ典型90問の★2と★3の問題をひたすら解く
当面の目標
- 安定して3完できるアルゴリズム力を身につける
- あと2回のABCコンテスト参加でレート100越え
追記
・E8さんの競プロ典型90問の★2を解き終わりました!
・当記事投稿からABCとARC1回ずつの参加でレートが100を超えました!