ISBN 9784046044082

アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門

アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門
出版社
KADOKAWA
刊行
2022-08

概要

AtCoder 過去問を軸にアルゴリズム的思考力を体系的に習得する

想定読者

AtCoder に登録したばかりの初学者、または競技プログラミングの体系的な入門書を探している C++ / Python3 学習者

こんな人には向いていない

  • すでに AtCoder で水色以上のレーティングを持つ人には既知の内容が多い
  • アルゴリズムの数学的証明や計算量の厳密な解析を重視する読者には別書(蟻本・螺旋本)の方が適している
  • 競技プログラミングに興味がなく実務アルゴリズムの応用だけを学びたい人には主題の焦点がずれる

読了後にできるようになること

  • AtCoder のコンテスト形式・レーティング制度の仕組みと参加手順を把握できる
  • 初級から上級まで段階的に整理された典型アルゴリズム(探索・ソート・動的計画法など)を過去問で実装できる
  • 計算量の概念(O 記法)を用いてアルゴリズムの効率を評価できる
  • C++ と Python3 の両言語で解法を比較しながらコードを書く習慣が身につく
  • 問題文から解法を導き出す思考プロセス(なぜそう考えるか)を言語化できる
  • AtCoder Problems など周辺ツールを活用した継続的な練習方法を理解できる

本書のキー概念(章解説)

  • 第 1 章 AtCoderとは — レーティング制度とコンテスト形式の全体像を把握する導入章
  • 第 2 章 AtCoderの始め方 — アカウント登録から初回提出までを実際に手を動かして確認できる
  • 第 3 章 初級編〜ここからスタート!〜 — 過去問精選を使った最初の問題群。本章を完走すると ABC の A〜B 問題に自信が持てる
  • 第 4 章 中級編〜典型を徹底マスター〜 — コンテスト頻出パターンを網羅した核心章。緑〜水色を目指す読者にとって最重要
  • 第 5 章 計算量 — O 記法の直感的理解に集中しており、厳密な証明より実用的な判断力を養う
  • 第 6 章 上級編〜本格的なアルゴリズムの世界へ〜 — 本格的なアルゴリズム学習への橋渡し。全部を精読せず辞書的に参照する使い方も有効

ハイライト

  • 一つ一つの問題を解説する際には、『なぜそのように考えるのか』が明快になるように心がけました(著者が最も力を入れた点を表す記述で、本書の他書との差別化を端的に示している)
  • プログラミング初心者でも本当にわかりやすく読めます(プログラミング経験が浅い読者が緑レーティング到達後に振り返って評した言葉)

外部からの言及

  • AtCoder 入門期の学習ロードマップ記事で本書が繰り返し参照されており、緑色レーティング到達の道標として位置付けられている。内容を完全にマスターすれば緑に到達できるという評価が複数の色変記事に共通している(qiita)
  • 問題パターンと解説のわかりやすさを評価する声が複数あり、競技プログラミングを続ける自信の形成に貢献したという体験談が見られる(qiita)

編集メモ

Qiita で本書タイトルを明示的に引用した記事が 4 件確認(likes 合計 143)。著者(@drken)本人の関連 Qiita 記事(登録後にやること)は 8,303 likes を持ち、本書の土台となった過去問精選が広く参照されている。Rakuten ランキング情報は今回未取得。定番教材として実務的な評価を受けているため practical と判定

読む前に押さえておきたいこと

  • C++ または Python3 の基本的な文法(変数・配列・ループ・関数)を一通り書けること
  • 競技プログラミングの提出・ジャッジシステムの仕組みを知らなくてもよいが、エディタでコードを書いて実行できる環境があること

学習のコツ

  • 第 3 章(初級編)をとばさずに手を動かして解くこと。既知の問題でも C++ と Python3 両方の解法を読み比べると言語選択の判断力が上がる
  • 第 4 章(中級編)は一周目に全て解こうとせず、まず AtCoder のコンテストに実際に参加して詰まったパターンを本書で照合する使い方が効果的
  • 第 5 章(計算量)は他章と切り離して最初に読んでおくと、以降の解法選択の根拠が明確になる
  • 著者の Qiita 記事(過去問精選 10 問、ソートを極める! など)は本書の補完資料として無料で参照できる。本書と併用すると理解が深まる
出版社による内容紹介

AtCoder株式会社は、日本発のプログラミングコンテスト運営会社として2012年6月20日に設立され、年々活動の幅を拡げてきました。 AtCoderの開催するコンテストは、「与えられた問題を解決するアルゴリズムを考え、それを正しく実装する」ことを競技化したものです。 本書は「AtCoderでアルゴリズムを学びたい」「AtCoderのコンテストに参加したい」という方に向けたAtCoderの入門書です。 コンテストで出題された過去問を用いて、問題の解き方を体系的に解説しました。一つ一つの問題を解説する際には、「なぜそのように考えるのか」が明快になるように心がけました。 筆者は、プログラマのための技術情報共有サービスサイトQiitaに、次のタイトルの記事を投稿しています(2018年3月)。 「AtCoderに登録したら次にやること〜これだけ解けば十分闘える!過去問精選10問〜」 この記事は、AtCoder の過去問10 問を実際に解くことで、読者がAtCoderへスムーズに入門できるように試みたものです。 本書はこの記事にいくつかのトピックを追加して、さらにC++ とPython3の両言語で学べるようにして、できあがりました。 AtCoderのコンテストは、参加者の人生を大きく変える力があります。 コンテストの問題を解いていくことで、アルゴリズム的思考力が身につきます。コンテストでよい成績を収めてレーティングを上げると、市場価値も高まります。また、コンテストに参加することで他の参加者とのつながりを得て、交流を深めることもできます。そしてなにより、AtCoder のコンテストは、ゲームのように楽しいものです。 〜「まえがき」より〜 第1章 AtCoderとは 第2章 AtCoderの始め方 第3章 初級編〜ここからスタート!〜 第4章 中級編〜典型を徹底マスター〜 第5章 計算量 第6章 上級編〜本格的なアルゴリズムの世界へ〜

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。