学習ロードマップ
計算量の考え方、ソートや探索などの古典的アルゴリズム、そしてそれらを実装で動かすための言語別ガイド。競プロにも実務にも効く土台。
このロードマップが扱うもの
アルゴリズムとデータ構造を、コーディング面接対策だけでなく日々の設計判断に活かせるレベルまで引き上げるためのロードマップです。対象は、言語の文法は一通り使えるが計算量やデータ構造の選択に自信がない開発者、および競技プログラミングや技術面接に向けて体系的に学び直したい人。学び終える頃には、問題を見たときに「どのデータ構造・どの手法が候補か」を数パターン挙げ、計算量で比較して選べるようになります。
このロードマップの全体像
アルゴリズムとデータ構造を、コーディング面接対策だけでなく日々の設計判断に活かせるレベルまで引き上げるためのロードマップです。対象は、言語の文法は一通り使えるが計算量やデータ構造の選択に自信がない開発者、および競技プログラミングや技術面接に向けて体系的に学び直したい人。学び終える頃には、問題を見たときに「どのデータ構造・どの手法が候補か」を数パターン挙げ、計算量で比較して選べるようになります。
1. 計算量と基本データ構造: O 記法、配列・連結リスト・スタック・キュー・ハッシュテーブル・ヒープ・木。 2. ソートと探索: 比較ソート各種、線形・二分探索、ハッシュによる探索の使い分け。 3. グラフアルゴリズム: BFS / DFS、最短経路(Dijkstra, Bellman-Ford)、最小全域木、トポロジカルソート。 4. 設計技法: 分割統治、貪欲法、動的計画法、二分探索の応用、尺取り法。 5. 発展トピック: セグメント木・Union-Find、文字列アルゴリズム、計算複雑性の感覚、近似・乱択の入り口。 6. 演習: オンラインジャッジや過去問で、時間を測りながら解く習慣をつけます。
最初から難問に挑むより、基本データ構造の計算量を体に染み込ませる方が結果的に近道です。実装は紙や擬似コードで流れを書いてから書き始めると、境界条件のバグが減ります。離散数学(集合・関係・確率・簡単なグラフ理論)を並行して学ぶと、証明や計算量解析の読解が楽になります。言語ごとの標準ライブラリ(C++ STL、Python の heapq / bisect など)の癖も押さえておくと演習の効率が上がります。
ロードマップ
第 1 章
Excel で AI/ML のアルゴリズムを動かす。「まず大きな視点で ML 系アルゴリズムはどんなものか」を 30 分で俯瞰する導入。
ソート・探索など教科書的アルゴリズムを Python で。計算量の考え方と合わせて「なぜこの順番か」が身につく。
経路探索・衝突判定・状態遷移など「ゲーム作りに必要なアルゴリズム」を題材に。応用の広さを体感。
言語の抽象層を剥いで C で実装することで、ポインタ・メモリ配置とアルゴリズムが地続きに見える。
Python 寄りの教科書で「計算量・正当性の証明」を少しずつ意識できるレベルまで。他の本で出会った概念を引きで見直す。