この本を一言で言うと
アルゴリズムとデータ構造の本質を問題解決の視点から体系的に学べる一冊——理論と実践をつなぐ丁寧な解説で、競技プログラミングや実務開発に直結するスキルが身につく。
この本の概要
「なんとなく書いてたコード」が恥ずかしくなった一冊
— 26歳 バックエンドエンジニア(Webサービス開発2年目)
この本で学べること
「なぜそのアルゴリズムなのか」から始まる解説構成
単なる実装の丸暗記ではなく、問題解決の思考プロセスを追体験できる構成になっている。各アルゴリズムの設計理由から入るため、応用力が身につく。
計算量の分析を丁寧に扱う
O記法による時間計算量・空間計算量の分析が各章で解説されており、実務でのコード品質向上に直結する視点が養われる。
グラフ理論・動的計画法・ソートを網羅
競技プログラミングや技術面接で頻出のトピックを幅広くカバー。BFS・DFS・ダイクストラ法・DPなど実践的なアルゴリズムが丁寧に解説されている。
豊富な図解でデータ構造の動作を可視化
スタック・キュー・ヒープなどデータ構造の動作をアニメーション的な連続図解で示しており、視覚的な理解を促す構成になっている。
本の目次
- 1第1章 アルゴリズムとデータ構造
- 2第2章 計算量とオーダー記法
- 3第3章 設計技法(1):全探索
- 4第4章 設計技法(2):再帰と分割統治法
- 5第5章 設計技法(3):動的計画法
- 6第6章 設計技法(4):貪欲法
- 7第7章 グラフ
- 8第8章 データ構造(1):配列・連結リスト・ハッシュ
- 9第9章 データ構造(2):スタックとキュー
- 10第10章 データ構造(3):木
- 11第11章 データ構造(4):ヒープ
- 12第12章 ソートアルゴリズム
- 13第13章 グラフアルゴリズム
良い点・気になる点
良い点
- ○アルゴリズムの設計理由から解説するため、本質的な理解が身につく
- ○O記法の丁寧な解説で、計算量を意識したコーディングができるようになる
- ○競技プログラミング・技術面接で頻出のトピックを網羅している
- ○図解が豊富でデータ構造の動作を視覚的に理解しやすい
気になる点
- △演習問題の解答が本書内に掲載されていない
- △C++を前提とした実装例が多く、他言語メインの読者は読み替えが必要
みんなの評判・口コミ
バックエンドエンジニア
バックエンドエンジニアとして働き始めて1年、計算量の重要性をこの本で初めて実感した。DPの章が特に分かりやすく、業務コードを書くときの思考が変わった。解答が別途必要な点は惜しいが、内容のクオリティは文句なし。
EC企業マーケター
競技プログラミング入門として読んだ。アルゴリズムの選択理由をきちんと説明してくれるので、問題を見たときに「どのアプローチを取るか」という判断力が磨かれた。C++の知識がある程度必要なので、事前に基礎を固めておくことをすすめる。
MLエンジニア
MLエンジニアとしてもアルゴリズムの基礎知識は重要で、この本で体系的に学べた。グラフアルゴリズムの章はデータパイプラインの設計にも応用できる内容で、プログラミング全般に役立つ良書だと思う。
フロントエンドエンジニア
フロントエンドメインだが技術面接対策で読んだ。説明は丁寧だけどC++のサンプルコードが自分には読みにくかった。JavaScriptで読み替えながら進めたが時間がかかった。C++読める人には強くすすめる一冊。
著者について
こんな人におすすめ
競技プログラミング入門者
AtCoderなど競技プログラミングを始めたい人が最初に読む一冊として定評がある。解法の思考プロセスを体系的に学べる。
技術面接を控えたエンジニア
外資系・大手IT企業の技術面接で出題されるアルゴリズム問題に対応できる基礎力が身につく。
計算量を意識したコードを書きたい人
業務コードの品質を上げたいが、計算量の分析方法が分からないエンジニアに最適な解説書。
CS系の大学生
情報科学の授業でアルゴリズムを学ぶ学生の副読本としても活用できる体系的な内容。
よくある質問
Q. 『問題解決力を鍛える!アルゴリズムとデータ構造』はどんなレベルの人向けですか?▼
Q. 『問題解決力を鍛える!アルゴリズムとデータ構造』はC++以外の言語でも役立ちますか?▼
Q. 『問題解決力を鍛える!アルゴリズムとデータ構造』の演習問題に解答はありますか?▼
Q. 動的計画法がまったく分からない状態でも読めますか?▼
Q. 競技プログラミングに直接使える内容ですか?▼
Q. 『問題解決力を鍛える!アルゴリズムとデータ構造』は技術面接対策に使えますか?▼
紹介されているランキング
タグ
対象読者
書籍情報
- 出版社
- 講談社
- 発売日
- 2020-10-01
- ページ数
- 368p
- ISBN
- 978-4065128442
プログラミング学習ロードマップ
効率的な学習順序がわかるロードマップを無料でダウンロード
※ 登録いただいたメールアドレスは資料送付にのみ使用します

