競技プログラミングの鉄則(キョウギプログラミングノテッソク)
アルゴリズム力と思考力を高める 77 の技術
プログラミング- 著者:
- 米田優峻(ヨネダ マサタカ)
- 出版社:
- マイナビ出版
- 出版日:
- 2022年09月16日頃
- ISBN:
- 9784839977504
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
競技プログラミング (競プロ) は、問題を解くことでプログラミング能力を競う大会です。本書では、競プロで必要なアルゴリズム・データ構造・考察テクニックを丁寧に解説します。さらに、知識を定着させるための例題・演習問題が 150 問以上掲載されています。
本書は、競プロのコンテストで勝ちたい、アルゴリズムを本格的に学びたい、技術力向上に繋げたいなど、様々な目的で利用できるものとなっています。
[本書の特徴]
・競プロで必要な 77 個のテクニックを網羅
・ 320 点超のフルカラーの図でわかりやすく解説
・知識を身に付ける演習問題 153 問
・全問題が「自動採点システム」に対応
・新傾向の「ヒューリスティック・最適化」も解説
[本書の構成]
序章 競技プログラミング入門
第 1 章 アルゴリズムと計算量
第 2 章 累積和
第 3 章 二分探索
第 4 章 動的計画法
第 5 章 数学的問題
第 6 章 考察テクニック
第 7 章 ヒューリスティック
第 8 章 データ構造とクエリ処理
第 9 章 グラフアルゴリズム
第 10 章 総合問題
終章 さらに上達するには
[本書で扱うトピック (抜粋) ]
全探索/ 2 進法/一次元の累積和/二次元の累積和/配列の二分探索/答えで二分探索/しゃくとり法/半分全列挙/部分和問題/ナップザック問題/ビット DP /最長増加部分列問題/素数判定法/ユークリッドの互除法/繰り返し二乗法/包除原理/ゲーム問題/偶奇を考える/一手先を考える/後ろから考える/山登り法/焼きなまし法/ビームサーチ/スタック/キュー/優先度付きキュー/連想配列/文字列のハッシュ/ダブリング/セグメント木/深さ優先探索/幅優先探索/ダイクストラ法/ Union-Find /最小全域木問題/最大フロー問題/二部マッチング問題/ほか多数
序章 競技プログラミング入門
第 1 章 アルゴリズムと計算量
第 2 章 累積和
第 3 章 二分探索
第 4 章 動的計画法
第 5 章 数学的問題
第 6 章 考察テクニック
第 7 章 ヒューリスティック
第 8 章 データ構造とクエリ処理
第 9 章 グラフアルゴリズム
第 10 章 総合問題
終章 さらに上達するには
技書の森解説
AtCoder で問題を解き始めたものの、ある難易度帯から先に進めなくなる。競技プログラミングの学習で誰もが突き当たるこの壁の正体は、多くの場合ひらめきの不足ではなく、知っていれば解ける「型」の穴です。『競技プログラミングの鉄則 アルゴリズム力と思考力を高める 77 の技術』 (マイナビ出版、 2022 年 9 月刊) は、その型を 77 のテクニックとして体系化した一冊です。著者の米田優峻氏は「 E869120 」の名で知られる競技者で、 AtCoder 最高ランクの赤 (レッドコーダー) 、国際情報オリンピックの金メダルを 3 度獲得し、「競プロ典型 90 問」の企画者でもあります。トップ層が実戦で使っている道具箱を、初中級者が登れる階段に並べ直したのが本書です。
10 章 + 終章の構成と演習 153 問
構成は序章の競技プログラミング入門から始まり、 計算量 、累積和、二分探索、動的計画法、数学的問題、考察テクニック、ヒューリスティック、データ構造とクエリ処理、グラフアルゴリズム、総合問題という 10 章 + 終章の積み上げです。特徴は徹底した演習主導にあり、例題・演習問題は 153 問、全問題が自動採点システムに対応しているため、読んだ型をその場で提出して正誤を確かめられます。フルカラーの図が 320 点超と、アルゴリズムの動きを紙面で追える視覚的な作りも独学の負担を下げています。スコアを競う形式の「ヒューリスティック」に章を割いているのは類書に少ない特色で、 AtCoder のヒューリスティックコンテストに興味がある人の最初の足がかりにもなります。
蟻本・アルゴリズム×数学との使い分け
競プロの定番書として先行する『プログラミングコンテストチャレンジブック』 (通称・蟻本、 2012 年) と比べると、役割の違いは明確です。蟻本は網羅性と到達点の高さで長く支持されてきましたが、序盤から要求水準が高く、初中級者には勾配が急です。本書はそこへ至る手前の階段を丁寧に刻んでおり、演習と自動採点で足場を固めながら登れます。また同じ著者の『問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本』 (2021 年) は、アルゴリズムを支える数学の土台を作る基礎編という関係で、数学に不安があればあちらを先に、コンテストで勝つ型を鍛えたければ本書から、という分岐になります。
前提となるプログラミング経験と実務への効き目
前提は、 C++ か Python などで入出力・配列・ループを書ける程度のプログラミング経験です。文法の解説はないため、完全な初心者は言語入門を 1 冊挟んでください。また本書は競技という文脈に最適化されているので、業務システムの設計力やフレームワークの知識を直接得る本ではありません。それでも、計算量を見積もって解法を選ぶ訓練、動的計画法やグラフを「使える型」として身につける経験は、コーディング面接や性能問題の解決といった実務の場面に確実に持ち出せます。
買って元が取れる読者
買って元が取れるのは、 AtCoder のレーティングを本気で上げたい学生・社会人、コーディング面接対策としてアルゴリズムを 問題演習 で固めたい人、そして「 アルゴリズムの本 は読んだが問題が解けるようにならない」経験をした人です。読む本ではなく解く本として設計されているため、 1 問ずつ提出しながら進めれば、 77 の型がそのまま自分の引き出しになります。競プロの学習投資として、迷ったらまずこれという安定の選択肢です。
言及 Qiita 記事 (65 件)
エンジニアに読んで欲しい技術書90選
♡ 1962技術書, 書籍, 新人プログラマ応援プログラミング初心者の40代おじさんが3年半かけてAtCoder水色になった話(色変記事)
♡ 487AtCoder, ポエム, 競技プログラミング[2023年1月版]競技プログラミングを始めたばかりの人にオススメの問題集
♡ 358競技プログラミングSE 2年目で読んだ技術書45冊+α
♡ 284技術書, Se, 新人プログラマ応援, 新人プログラマ応援_記事投稿キャンペーンSE 1年目で読んだ技術書68冊+α
♡ 276Java, 初心者, 技術書, Se高校の 2 年間で情報オリンピック (JOI) の二次予選を突破する方法を大公開! 〜 JOI の地域格差に挑んだ軌跡の記録 〜
♡ 115アルゴリズム, AtCoder, 教育, 競技プログラミング, 情報オリンピック文系大学生がプログラミング未経験から5ヶ月で入緑した話【AtCoder】
♡ 107Python, AtCoder, 初心者, 競技プログラミングプログラミング完全未経験から始める!競技プログラミング入門ガイド
♡ 91AtCoder, 初心者, 競プロ, 未経験【競プロ】【入緑】AtCoder続けて良かったこと
♡ 88AtCoder, 競技プログラミング40代で Rust を触り始めて 1年で AtCoder に入水できた件
♡ 81Rust, AtCoder, ポエム, 競技プログラミング, 色変
言及 Zenn 記事 (4 件)
この本に興味がある方におすすめ
この本に関連
米田優峻 の他の書籍
関連記事
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
本を読むスピードは気にしなくていい
1 ページ読むのに 10 分かかっても問題ありません。プログラミングの本はゆっくり読むのが正解である理由と、焦らず読み進めるコツを紹介します。
関連用語
グラフアルゴリズム
ノードとエッジで構成されるグラフ構造に対する探索 / 最短経路 / 接続性の分析アルゴリズム
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出 / ビルド順序の決定 / 影響範囲分析での活用法を解説
グラフデータベース
ノード (エンティティ) とエッジ (関係) でデータを表現し、複雑な関係性のクエリに特化したデータベース
アルゴリズム
問題を解くための手順。計算量を意識した効率的な手順がプログラムの性能を決める
プログラミング
コンピュータに実行させる手順をプログラミング言語で記述し、動作を作り出す行為