プログラム初学者からプログラミングコンテスト(競技プログラミング)、すべてのコーダー・エンジニアに必須のアルゴリズムとデータ構造を図解とコーディング、Aizu Online Judge(AOJ) のオンラインジャッジシステムで習得していきます。
プログラミングコンテストで必要となるアルゴリズムとデータ構造を体系的に学ぶための入門書です。基礎知識を身に付けながら問題解決力を高めることを目的としています。高度な数学力だけでなく、基本的なアルゴリズムの理解と応用によって多くの問題を解けるようになり、コンテストをより楽しめるようになることを目指しています。
本書の特徴は、オンラインジャッジ(AOJ:Aizu Online Judge)と呼ばれる自動採点システムを活用して学習を進める点です。読んで理解するだけでなく、実際にプログラムを実装し、その正しさや性能を検証することで知識を実践的なスキルへと変えていきます。オンラインジャッジは厳密なテストデータでプログラムを評価するため、正確な実装力や計算効率を意識したコーディング能力を養うことができます。正解判定を得る達成感や、スキルを積み重ねる楽しさによって、ゲーム感覚で学習を継続できる点も魅力です。
収録問題は、問題IDや制約条件、難易度、必要スキル、獲得スキルなどが整理されており、段階的な学習を支援します。内容は情報処理の基礎として汎用性の高いアルゴリズムとデータ構造を中心に構成され、標準ライブラリの仕組みや活用法、さらに応用問題への発展も学べます。
各章では概念解説、演習問題、解説、考察、解答例を組み合わせ、学習者のレベルに応じて「解説を読んでから実装する」あるいは「自力で挑戦してから解説を確認する」といった柔軟な学習方法を推奨しています。プログラミングコンテスト対策だけでなく、アルゴリズムやデータ構造を学ぶ教材としても活用できる一冊です。
本書は2015年1月発行『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の内容に一部修正・変更を加えた新版となります。