プログラミングコンテストチャレンジブック第 2 版(プログラミング コンテスト チャレンジ ブック)
問題解決のアルゴリズム活用力とコーディングテクニッ
プログラミング- 著者:
- 秋葉拓哉/岩田陽一(アキバ,タクヤ/イワタ,ヨウイチ)
- 出版社:
- マイナビ出版
- 出版日:
- 2012年01月
- ISBN:
- 9784839941062
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
プログラミングコンテストの問題を通してアルゴリズムのしくみや考え方を楽しく習得。世界トップレベルの著者たちがコンテストで得た知識やノウハウを難易度別にまとめました。現役プログラマだけでなくプログラマを目指している方にもぜひ読んでいたただきたい 1 冊。
技書の森解説
『プログラミングコンテストチャレンジブック 第 2 版』は、秋葉拓哉・岩田陽一・北川宜稔の 3 人が著したアルゴリズム解説書です。マイナビから 2012 年 1 月に刊行され、 367 ページ。プログラミングコンテストの問題を題材にアルゴリズムのしくみや考え方を習得させる作りで、版元は「世界トップレベルの著者たちがコンテストで得た知識やノウハウを難易度別にまとめた」と紹介しています。競技プログラミング に本腰を入れたい人と、計算量を意識した問題解決力を鍛えたいエンジニアに向けた一冊です。
難易度別に段階を刻む訓練型の構成
本書の性格を決めているのは、アルゴリズムを定義から順に積み上げる教科書型ではなく、コンテストの問題を解きながら手法を体得していく訓練型の進め方です。版元の紹介文によれば内容は難易度別に整理されており、易しい段階から順に取り組めば、自分の実力がいまどの水準にあるかを確かめながら読み進められます。副題の「問題解決のアルゴリズム活用力とコーディングテクニックを鍛える」が示す通り、手法を知ることではなく使えるようにすることが主眼です。 2012 年 1 月刊の第 2 版であり刊行から年月が経っていますが、主題が特定の言語やフレームワークではなくアルゴリズムそのものなので、中核となる内容は時代で古びにくい領域です。
競技プログラミングで鍛えられる力の正体
競技プログラミングは、与えられた問題を実行時間やメモリの制約の中で正しく解くプログラムを書く競技で、国内では AtCoder 、大学対抗では ICPC といった舞台があります。難しさの本質は、個々のアルゴリズムを知っているかどうかよりも、目の前の問題をどの手法に帰着させるかという見立てにあります。全探索で間に合うのか、動的計画法 で部分問題に分解できるのか、二分探索 で答えを絞り込めるのか。そして選んだ解法が制限時間に収まるかを、計算量 の見積もりで実装前に判断する。この見立てと見積もりの力は問題を数多く解く訓練でしか身につかず、コンテストの問題を主教材とする本書の作りは、まさにその訓練を意図したものです。
前提知識と、向かない読者
前提として必要なのは、何らかのプログラミング言語で一通りコードが書ける基礎体力です。版元はプログラマを目指す段階の読者も対象に挙げていますが、コンテストの問題を主教材とする構成上、変数や関数の使い方そのものをこれから学ぶ段階の人には向きません。アルゴリズムに初めて触れる人がいきなり取り組むと勾配が急に感じられる可能性があり、その場合は段階的な入門教材を一冊挟んでからのほうが吸収しやすいはずです。資格試験の対策や特定フレームワークの習得が目的の読者にとっても、本書は遠回りになります。
どんな読者なら買って元が取れるか
元が取れるのは、まず AtCoder などのコンテストで成績を伸ばしたい人です。解けなかった問題がどの典型手法の変形だったのかを確かめながら進む学び方は、場当たり的な演習よりも解法の引き出しを増やしやすいはずです。次に、技術面接でアルゴリズム問題が課される就職・転職の準備をしている人。さらに、コンテストに出るつもりはなくても、データ量が増えたときに破綻しない処理を計算量から判断できるようになりたいエンジニアにも効きます。解けたかどうかがはっきり分かる問題を教材に、アルゴリズムの引き出しと見立ての力を体系的に鍛えたい人にとって、投資に見合う一冊です。
言及 Qiita 記事 (31 件)
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
♡ 8323アルゴリズム, algorithm, AtCoder, 競技プログラミング, 新人プログラマ応援計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜
♡ 3887アルゴリズム, 数学, 競技プログラミング, 新人プログラマ応援, 計算量AtCoder 版!蟻本 (初級編)
♡ 2755アルゴリズム, AtCoder, 競技プログラミング, 新人プログラマ応援, 蟻本アルゴリズムの世界地図
♡ 1326アルゴリズム, 最適化, 競技プログラミング, データ構造, 新人プログラマ応援高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話
♡ 1057アルゴリズム, 数学, 最適化, 研究, 競技プログラミング実世界で超頻出!二部マッチング (輸送問題、ネットワークフロー問題)の解法を総整理!
♡ 860アルゴリズム, 最適化, 競技プログラミング, グラフ理論, 組合せ最適化DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【後編】
♡ 709アルゴリズム, AtCoder, 競技プログラミング, グラフ理論, 探索AtCoder 版!蟻本 (中級編)
♡ 469アルゴリズム, AtCoder, 競技プログラミング, 新人プログラマ応援, 蟻本インフラエンジニアの自分が買ってよかったと思う書籍10選
♡ 390書籍, インフラエンジニア, 新人プログラマ応援, システムエンジニア厳選!C++ アルゴリズム実装に使える 25 の STL 機能【後編】
♡ 358C++, アルゴリズム, まとめ, 競技プログラミング, 新人プログラマ応援
この本に興味がある方におすすめ
この本に関連
関連記事
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。
ソフトウェア開発の歴史を変えた 5 冊の技術書
アルゴリズムの学問化からコードの可読性革命まで、ソフトウェア開発の方向性を決定づけた 5 冊の技術書を、時代背景とエピソードとともに紹介します。