2025年2月8日開催のAtCoder Beginner Contest 392 (ABC392) に出場し,入茶することができました!そこで茶色になるまでにしたことをまとめてみたいと思います.
筆者について
非情報系の大学4年生です.Pythonをはじめとして,プログラミングの経験は2,3年程度あります.数理と関連分野(グラフ理論,最適化,アルゴリズムなど)の知識は多少ありますが,競プロは初心者です.Atcoderは2年前(2023年1月ごろ)に3回ほど出たことがありましたが,すぐに辞めてしまいました.2025年1月に再開し,再開後6回目のコンテストで茶色になれました.なお,AtcoderではPythonを使っています.
茶色になるまでにしたこと
私は書籍競技プログラミングの鉄則(いわゆる鉄則本)を用いて学習しつつ,毎週ABCに出場し,その復習を行うことで茶色になりました.それぞれにかけた時間は以下の通りです.
- ABC出場と復習,その他ABC問題演習など:約40時間
- 鉄則本:約25時間
以下にそれぞれ詳しく記述します.
ABC出場と復習,その他ABC問題演習など
まず初めに,Atcoderのデータの入出力に慣れるために,Python入門 AtCoder Programming Guide for beginners (APG4bPython) - AtCoderを解きました.その後,ABCのA,B問題をいくつか解き,入出力に慣れてきたら,コンテストに出場し始めました.毎週のABCでは,出場するだけでなく,終わった後に復習も行いました.復習では,Atcoder Problemsの難易度水色以下の問題を解き,解説などを見ながら自分でACできるように努めました.ABCには解説放送というものがあります.解説放送では,問題の解答だけでなく,正解に至るまでの過程が解説されるので,とてもおすすめです.
出場していない分のABCについてはあんまり解いていません.
なお,個人的には,ABCの各問題について,以下のような役割があると感じました.参考にしてみてください.
- A,B問題:データの入出力,条件分岐やforループを正しく使えるか
- C問題:計算量を意識できるか.たまにちょっとしたアルゴリズムも出題される.
- D問題〜:アルゴリズムやデータ構造を使えるか
鉄則本
鉄則本では,競プロで必要なアルゴリズムやテクニックを網羅的に学習できます.私は鉄則本の例題のみを解き進め,現在は第8章「データ構造」まで読み終えました.例題を解くときには,できるだけ自分で解いてみるようにしています.解けないときは,解説を見て,理解した上で自分でACします.基本的なアルゴリズムやデータ構造が網羅されているので,初心者にはおすすめです.ただし,分野別の縦割りにしている関係で,難しいトピックもいくつか扱われています(LIS,文字列のハッシュなど).筆者も,「これは初見じゃ絶対に解けない...」と苦しんだ問題も多々ありました.そのため,1週目には難しい問題(例えば難易度星5の問題)は飛ばしてもいいかもしれません.
その他おすすめのリンク
自分が参考になったと感じた記事や動画をいくつか紹介します.
-
未経験者のアナタもハマる?競技プログラミング「AtCoder」って何だ?【橋本幸治の理系通信】(2021年3月19日) - YouTube
- Atcoderってなんだろう,始めてみようかなと思っている方におすすめです.
- レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 #競技プログラミング - Qiita
- 【競技プログラミング】プログラミング初心者がAtCoderを始めて10か月で水色になった方法【ゆっくり解説】 - YouTube
今後の目標
茶色になることができたので,次の目標は緑色になることです.緑色になるために,鉄則本を終わらせた上で,Educational DP Contest / DP まとめコンテストや,レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】に載っている「分野別 初中級者が解くべき過去問精選 100 問」を解いていこうと思います.