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

アルゴリズムテキシコウリョクガミニツク! プログラミングコンテストアットコーダーニュウモン

アルゴリズム的思考力が身につく! プログラミングコンテスト AtCoder 入門の表紙
プログラミング
著者:
大槻 兼資 / AtCoder 株式会社(オオツキ ケンスケ / アットコーダーカブシキガイシャ)
出版社:
KADOKAWA
出版日:
2022年08月01日頃
ISBN:
9784046044082
在庫:
在庫あり
0
初級者向け
PythonC++アルゴリズム競技プログラミングAtCoderプログラミング入門問題解決コーディング論理的思考プログラミング教育

なぜ注目されているか

言及数
343位
総合481位 ↑ 3 ランクアップ 言及 8 件
出版前出版日01120222023202420252026

書籍紹介

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 章 上級編〜本格的なアルゴリズムの世界へ〜

技書の森解説

AtCoder のコンテストに参加してみたいが、問題を開いても何から考え始めればよいか分からない。『プログラミングコンテスト AtCoder 入門』 (大槻兼資 著、AtCoder 株式会社 監修、KADOKAWA、2022 年 8 月刊) は、そうした段階の人に向けて、コンテストで出題された過去問を題材に解き方を体系的に解説する 競プロ の入門書です。正式書名は「アルゴリズム的思考力が身につく!」を冠し、版元の紹介文は「AtCoder でアルゴリズムを学びたい」「AtCoder のコンテストに参加したい」という読者を対象に掲げています。解説は C++ と Python3 の両言語で学べるように書かれているため、どちらの言語で競技を始めるか決めかねている人もそのまま取り組めます。

全 6 章の構成、AtCoder の始め方から上級編まで

構成は全 6 章です。第 1 章「AtCoder とは」と第 2 章「AtCoder の始め方」で、AtCoder という場と参加の手順を押さえます。第 3 章「初級編〜ここからスタート!〜」、第 4 章「中級編〜典型を徹底マスター〜」と段階を上げ、第 5 章「計算量」を独立した章として挟んだうえで、第 6 章「上級編〜本格的なアルゴリズムの世界へ〜」に至ります。版元の紹介文によれば、一つ一つの問題を解説する際に「なぜそのように考えるのか」が明快になるように心がけたとされ、解法の暗記ではなく発想の筋道を追わせる方針が章立てにも表れています。監修の AtCoder 株式会社は、紹介文の記載では 2012 年 6 月 20 日に設立された日本発のプログラミングコンテスト運営会社で、そのコンテストは「与えられた問題を解決するアルゴリズムを考え、それを正しく実装する」ことを競技化したものと説明されています。

過去問精選 10 問の記事から生まれた二言語対応の解説

本書の出発点は、著者が 2018 年 3 月に Qiita へ投稿した記事「AtCoder に登録したら次にやること〜これだけ解けば十分闘える! 過去問精選 10 問〜」です。版元の紹介文は、この記事が AtCoder の過去問 10 問を実際に解くことで読者をスムーズに入門させる試みだったこと、本書はその記事にいくつかのトピックを追加し、さらに C++ と Python3 の両言語で学べるようにして出来上がったことを記しています。著者の大槻兼資氏は「けんちょん」の愛称で知られ、刊行時の版元プロフィールによれば 1988 年生まれ、2014 年に東京大学大学院情報理工学系研究科修士課程を修了し、著書に『問題解決力を鍛える! アルゴリズムとデータ構造』 (講談社、2020 年) と『パズルで鍛えるアルゴリズム力』 (技術評論社、2022 年) があります。競技プログラミングを趣味とする実践者が、入門者の最初のつまずきを知ったうえで書いた本だという点が、本書の性格を決めています。

計算量を独立した章に置く意味と競プロ入門の難所

競技プログラミングの入門で最初につまずくのは、文法ではなく、問題文を読んでどう手順に落とすかという点と、その手順が制限時間内に終わるかという点の二つです。競技の問題は入力の大きさと実行時間に制限を設けるのが通例で、素直な全探索で間に合うのか、より効率のよいアルゴリズムが必要なのかは、計算量 の見積りで判断します。本書が計算量を中級編と上級編の間に独立した章として置いているのは、典型手法をひとまず使えるようになった読者に、次の段階へ進む前に速さを測る物差しを持たせる構成と読み取れます。C++ と Python3 の両言語で解説が並ぶことも、この観点で意味があります。同じアルゴリズムでも実行速度は言語によって大きく異なるため、Python で書く人ほど計算量の意識が結果に直結し、C++ で書く人は言語の速さに頼りすぎない設計を学ぶ必要があります。両言語を並べて読める本書は、言語の違いとアルゴリズムの本質を切り分けて理解する助けになります。

AtCoder に登録したての人に向く前提と、向かない読者

前提として求められるのは、C++ か Python のどちらかで簡単なプログラムを書けることです。書名にも紹介文にも言語そのものの入門という要素は掲げられていないため、文法をこれから覚える段階の人は、先に言語の入門書を一冊済ませてから戻ってくるのが無理のない順序です。2026 年 9 月時点の AtCoder 公式サイトは、ABC (AtCoder Beginner Contest) を「初心者でも参加しやすい基礎コンテスト」と位置づけ、リアルタイムのオンラインコンテストに加えて過去問にいつでも挑戦できると案内しています。本書の過去問ベースの解説は、この過去問演習の伴走役として機能します。一方、典型手法をすでに使いこなし、上位を狙って高度なアルゴリズムやデータ構造を体系的に学びたい人には、入門書である本書は物足りません。その段階では同じ著者の『問題解決力を鍛える! アルゴリズムとデータ構造』のような体系的な教科書のほうが目的に合い、実務との接点も含めた アルゴリズム本の選び方 は別の記事にまとめています。

AtCoder に登録したものの ABC の序盤の問題で手が止まる人、解説を読んでも発想の出どころが腑に落ちない人、C++ と Python のどちらで始めるか迷っている人にとって、本書は投じた時間を早く回収できる一冊です。版元の紹介文が述べるとおり、コンテストの問題を解いていくことでアルゴリズム的思考力が身につき、レーティングを上げれば市場価値の面でも意味を持ちますし、なにより過去問が解けるようになる過程そのものがゲームのように楽しいというのが、本書が入門者に伝えようとしている体験です。最初の一冊として、迷わず手に取れる入門書です。

言及した記事 (8 件)

この本は技書デッキのカードです (備え 4 / 流儀: 連打) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: