C++で競プロ勉強メモ
2 AtCoder Beginners Selection を解く
2-1 過去問10選を解く
AtCoder Beginners Selection
サイトでも書かれているようにAtCoderのC++入門を先に学んでから解いた。
わからない部分などは以下の記事を参考に読み解いた。
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
問9のgreedyに一番苦戦させられた。発想力が大事なんだと思い知らされた。
2-2 別解の解説記事を読み解く (HEAD)
2-1のQiitaの記事で別解の解説記事が紹介されていた。
発想の柔軟さを学びたいと思い、急がば回れの精神でこちらも読み解いていく(現在実行中)
AtCoder に登録したら解くべき精選過去問 10 問を別解で解いてみた。
次は以下を組み合わせて学んで行く予定。
- チーター本 (https://amzn.asia/d/e0Qqmyc)
- 2-1のQiitaの記事で紹介されていた各アルゴリズム別おすすめ問題
1. C++の基礎を学ぶ
AtCoderのC++入門を一通り学んだ。
もともとJSやPHPなどなじみのある言語はあったが、「みんな使ってるんだからC++でやってみよう」「上級者はC++みたいな印象があるからC++をさわってみよう」というモチベーションでC++を学ぶことにした。
内容の習得度は70-80%程度。演算子オーバーロードなど使い慣れず理解の浅い部分もあるが、言語を使い始められる位置には立ったので、この状態で先に進むことにする。
学んだ感想は、あえてC++でスタートしてよかったと思う。
後に問題を解いて解説記事などを見た時にC++で解説されていることが多く、著者が言いたいことを理解しやすかった。
「解説にC++が多い」とは見聞きしていたが、実際に目の当たりにすると強い実感がある。
3-1. レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】
まずは上達のガイドラインが欲しい、ということで、米田 優峻さんの記事が丁寧だったので参考にさせて頂いている。
こちらの初級編の記事の内容は 2023/10/22 に完了。
記事内で紹介されている問題もすべて解き終えた。
3-2. レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】
初級編は終えていざ中級!と思ったが、すぐにC問題以上は自分にはまだ早いことがわかった。
- 数学的解き方の考察力
- 基本的なアルゴリズムを使用する能力
これらが足りていないので、自分に向いている問題集を探し求めてみた。
AtCoder 競プロ典型90問
簡単なものから慣れていきたいという気持ちから、競プロ典型90問の★2レベルから解き進めてみた。
3-3. ★2レベルの回答と考察
★2レベル(リストの中では最低レベル)でさえ、問題文の通りに実装する問題だけは解けて、数学的考察が必要になると途端に厳しくなるのが現状だった。
022 - Cubic Cake(★2) でさえ解き方を間違えていてぜんぜんだめで、自分の進み方が間違えているような気がしている。
次のステップは
- 諦めてもっと簡単な問題から解く
- ギリギリわかるくらいの問題の解説を見て理解する
- 初心者向けのアルゴリズム本で勉強する
のいずれかを取りたいので、それぞれ少しずつタッチしてみる。