はじめに
未経験から競技プログラミングを始めて苦節1年強、2025/2/1 の AtCoder Beginner Contest 391 において水色Coder (約上位10%) になることができました。
実は初めて参加したコンテストでは全く歯が立たず、結果は一番低いレーティングである灰色パフォーマンスでした。
そんな私が水色Coderになるまで、使用した参考書籍/記事について紹介させていただきます。
前述の通り最初から実力があったわけではないので、初心者の方により親しみやすい視点でお話できると思います。
想定読者
- 競プロやプログラミング未経験で、これから始めたいと考えている方
- 競プロをやってはみたが伸び悩んでいたり、何を学習すればいいか分からない方
レベル☆☆☆(前提知識)
1. AtCoder サイトマップ
そもそも競プロやAtCoderについてよく知らない、という方へ。
他に競プロができるサービスとしては、海外の Topcoder や Codeforces などが有名です。
ただ、当然日本語には非対応のため問題の翻訳に時間がかかったり、ややUIが不親切だったりするので、特別なこだわりがなければ AtCoder から始めるのがおすすめです。
AtCoder も日本では最も有名なサービスであり、最近は海外からの参加者もかなり増えてきていて、コンテスト参加者の約半数を占めているようです。
2. C++入門 AtCoder Programming Guide for beginners
プログラミング初学者の方へ。
AtCoder公式が完全無料で公開してくれています。
実際に簡単な問題を解いて回答を提出し、その採点結果を確認することもできます。
とても分かりやすく、C++の入門書としても非常におすすめです。
競プロを始めるなら、多くの書籍や解説に使用されていること、実行速度の面で有利であることなどから、C++が最有力の言語となっています。
他に慣れ親しんだ言語がある方は、まずその言語で始めてみて競プロの雰囲気を掴み、もし限界を感じたらここに戻ってきても良いと思います。
3. Python入門 AtCoder Programming Guide for beginners
先述したC++入門のPython版です。
PythonもC++程ではありませんが競プロにおいて人気の言語です。問題によってはC++だと数十行のコードを書かないといけないところ、Pythonだと豊富なライブラリ群によって数行で解けることも稀にあります。
C++が難しいと感じた方はこちらでも問題ないでしょう。
レベル★☆☆(灰色コーダー向け)
4. Atcoder Beginners Selection
AtCoderが常設している初心者向け問題集です。
まずはこの問題集に取り組み、提出方法や問題の雰囲気に慣れてください。
この問題集を終わらせたら、どんどんコンテストに参加しましょう。実戦に勝る経験無しです。
5. アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門
AtCoder公式監修の競技プログラミング入門書です。
whileループや文字列の扱いなどのプログラミング基礎から段階を踏んで、少しずつアルゴリズムの解説に移っていくような構成になっています。
特にプログラミング初学者や、少しずつステップアップしたい方には非常にオススメできる一冊です。
レベル★★☆(茶色コーダー向け)
6. 競技プログラミングの鉄則
競プロに必須のアルゴリズム、データ構造、考察テクニックを解説している参考書です。
プログラミング経験者はこの本から始めるのがおすすめです。
この本を一通り終えれば、緑色~水色に到達するための土台は完成すると思います。
各種アルゴリズムや解法が図解と共にイメージしやすく解説されていて、非常に分かりやすいです。
また、ありがたいことに 演習問題 をAtCoderで実際に解いて提出・採点することができます。
7. 問題解決力を鍛える!アルゴリズムとデータ構造
アルゴリズムとデータ構造についての入門参考書です。
こちらは競プロのテクニックに留まらず、アルゴリズムとデータ構造についてより広範かつ詳細に解説しています。
とても分かりやすく実用的で、競プロer以外にもオススメできる一冊です。
8. 競プロ典型90問
有志が作成した、AtCoder常設の典型問題集です。
各問題にレベルが記載されているので、低い順に解いていきましょう。
水色を目指すなら星5まで解けば十分かなと思います。
解説ページには一見解説がない問題もあるように見えますが、"コンテスト全体の解説"にあるリンクから全問題の公式解説とサンプルコードを閲覧することができます。
レベル★★★(緑色コーダー向け)
9. レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】
水色Coderになるために必要な条件やアルゴリズム、過去問精選100問など、重要なトピックがまとめられている記事です。
上述した参考書や問題集には載っていないようなテクニックも解説されています。
過去問精選100問には正直難しすぎる問題も多く含まれているので、全く歯が立たない問題はスルーして良いと思います。
10. AtCoder Problems
非公式の有志が運営している、AtCoderの過去問一覧を閲覧できるサイトです。
各問題がレベル分けされていたり、自分の提出履歴や未トライの問題を確認出来たりと、非常に便利な機能が多く含まれています。
私は茶色~緑色で停滞していたとき、典型問題をカバーできても少しひねった問題を解けないことが多かったです。
過去問を多くこなしてからは対応力が上がり、典型問題以外も少しずつ解けるようになっていきました。同じパターンの人はぜひ過去問精進してみてください。
11. プログラミングコンテストチャレンジブック
競プロ界の言わずと知れたバイブルです。
バイブルではあるのですが、非常に難しいです。
万人にオススメはできませんが、理解できれば非常に高いレベルに到達できると思います。
私は半分ほど読み進めましたが、水色に到達するだけならこの書籍は不要かもしれません。
理解力に自信のある方や、更に上のレベルも見据えている方は是非。
ヒューリスティックコンテスト
12. AtCoderを知る Heuristic Contest
ここまではアルゴリズム部門向けの参考書籍 / 記事を紹介してきましたが、ここからはヒューリスティック部門向けの紹介です。
アルゴリズム部門のコンテスト(ABC, ARCなど)では、ある問題に対して最適解を求められるか否かを競います。一方ヒューリスティック部門のコンテスト(AHC)では、様々な条件の中でできる限りの最適化を行い、どれだけ良い解を求められるかを競います。
アイデアや創意工夫によって解が改善していくのが非常に楽しく、アルゴリズム部門とはまた異なる面白さを感じることができます。
どのレベルの方でも参加できますが、ある程度基本的な実装力やアルゴリズムを身に着けてからの方がより楽しめると思います(目安茶色くらいから)。興味が沸いたら是非。
13. 競プロ〜ヒューリスティック/マラソン事始め〜
ヒューリスティックコンテストの問題傾向やパターンを知りたい方へオススメの記事です。
ヒューリスティックコンテストは問題設定が比較的複雑で、何から手を付ければいいか分からないような問題も多くあります。
この記事では問題のパターン分類やアプローチを重点的に解説しており、コンテストにおいて取っ掛かりを作るための良い勉強になりました。
14. ゲームで学ぶ探索アルゴリズム実践入門~木探索とメタヒューリスティクス
ヒューリスティックコンテストで頻出のアルゴリズムについて一通り抑えることができる参考書です。
図解を用いて丁寧に解説されており、非常に分かりやすいです。
単なるアルゴリズムの解説に留まらず、どのような問題にこのアルゴリズムを適用できそうかといった勘所や、実際のゲームへの応用なども解説されています。
おわりに
この記事がこれから競プロを始める方や、レートが伸び悩んでいる方のお役に立てば幸いです。
私は最近競プロ以外にも勉強したいことが多くコンテストに参加できていないのですが、落ち着いたら再開して更に上のレベルを狙っていきたいです。

