AtCoder Beginner Contest (ABC 302)で水色になりました!
他の人の「AtCoder ◯色記事」を読むと他の人の考えが知れて面白いなと思ってたので、水色になるまでに大事だなと思ってたことを書いていこうと思います。
そもそもAtCoderって?という方はこちら↓ 適当なコンテストの問題を見てみるとどんなものか分かるかと思います。
https://atcoder.jp
水色ってどれくらいなのって方はこちら↓
https://chokudai.hatenablog.com/entry/2019/02/11/155904
始めたきっかけ
始めたきっかけは大学の授業(情報系)で紹介されて、水色くらいまではやっておくとエンジニアとかやるならいいよということだったので、そんなもんかと思い始めました。
言語はC++を使っていて、競プロを始めるにあたって授業の参考書として買ってあった本(「問題解決力を鍛える!アルゴリズムとデータ構造」)がC++で書かれていたというだけの理由ですが今としてはいい選択だったなと思ってます。
やったこと(教材等)
大体時系列順に書きます。
APG4b: https://atcoder.jp/contests/APG4b
AtCoderの中にあるC++の入門用教材。C++で競プロを始めるなら当然おすすめだしそうでなくてもC++の初学にとてもいいと思う。ちょっと書き方が堅いところもある気がするが手元の環境がなくても無料で気軽に始められるのでとてもいい。
AtCoder Beginners Selection: https://atcoder.jp/contests/abs
始めたばかりの人におすすめの8問。下の記事にわかり易い解説がある。
https://qiita.com/drken/items/fd4e5e3630d0f5859067
大槻兼資 . 問題解決力を鍛える!アルゴリズムとデータ構造 . 講談社 , 2020.
通称けんちょん本。詳しくていいのだが初学者がやるには難しいと思う。基本的なアルゴリズムの部分だけやったが演習問題が難しすぎて全然できなかった。
ーーーー緑色~ーーーー
精選100: https://qiita.com/e869120/items/eb50fdaece12be418faa
この100問を各単元についてネットで調べて勉強して解いていった。とても教育的な問題が揃っているがすごく難しい問題もちょくちょくあるので2時間くらいまたは数日置いて考えても分からないなら解説見て学んだほうがいいと思う。
米田 優峻 . 競技プログラミングの鉄則 ~アルゴリズム力と思考力を高める77の技術~ . マイナビ出版,2022
通称鉄則本。カラーでわかりやすく網羅性も高くいい。買った時点で7割方本の中の知識はあったがそれでもかなり勉強になり力がついた気がする。著者は精選100の制作者でもある。
レートを上げるために
レートを上げるためにやってよかったこととか考えてたことを書きます。
コミュニティに参加する
コミュニティに参加するとモチベの維持ができたり新しい知識が知れたりします。私自身、大学の競プロサークルに参加したことでC++の知らなかった知識を教えてもらったり、ICPCに参加したお陰でモチベが保てたりしました。
他にもAtCoderProblemsのVirtualContest(通称 バチャ)とかもコミュニティと言えるかわかりませんが他の人がやってるのを感じながらできるので刺激になって結構いいです。
1色上の問題を逃げずに解く
私は緑になってから長らくDifficultiy(diff)が水色相当の問題を避けていたのですが、後から見るとこれはだいぶ成長の妨げになってたなと思ってます。避けていた理由としてはできない問題が多く、その解説を見てしまうことに抵抗があったからでした。しかし、ある程度覚えゲー要素の多い競プロにおいて解説をなかなか見ないというのはABCの範囲ではあんまり良くないのかなと最近は思ってます。
競プロフレンズさん(@kyopro_friends)もよくマシュマロの回答でABCは解説ACして先に進んだほうがいいよと言ってます。
サーバル「ABCの範囲なら早めに解説を見てもいいし、質より量でいいと思うよ。私たちが書いた記事も参考にしてね」https://t.co/fqROHRSE31
— 競技プログラミングをするフレンズ (@kyopro_friends) March 22, 2023
分からなかったら解説を見ると言っても、最近自分がやってるやり方としては解説をちらっとだけ見るというのがあります。やり方としては、解説をざっと見て方針だけ理解して実装してみるというものです。感覚的にはABCの後Twitterで◯問題はBFSで~とか方針を他の人が言ってるのをヒントに解くのと近いかなと思ってます。このやり方のいい点は方針だけ知って自分で考えて実装することで実装力がつくことや方針に対しても吟味&理解が進むという点です。自力で解ききるほどではないですが、方針を知ってから解けても結構うれしいのでやったことない方はぜひやってみてください。
おわりに
読んでいただきありがとうございます。競プロを初めて1年ちょっとが経ち、始めた当初は水色になったら辞めようと思ってたのですが、今が一番やる気があるので青色目指して頑張ろうと思います。