Atcoderで茶色になりました

というわけでなんとかやりました。 数学の素養が全く無い人間でも数こなせばなんとかなるものですね。

茶色に必要なこと

有名な記事で茶色についての記述にこのようなものがあります。

レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 - Qiita

  • AtCoder Beginner Contest の A, B 問題が確実に(大方 15 分以内で)解ける
  • AtCoder Beginner Contest の C 問題も簡単なものなら解ける

ですが、参加者がかなり増えてる現在、茶色になるには

  • AtCoder Beginner Contest の A, B, C問題が確実に(大方 30 分以内で)解ける

ぐらいに茶色の難易度が上がっていると思います。この上でDが安定し解けると緑が見えてくると思います。

茶色になる上で役に立ったこと

僕は典型的な私立文系でこの前まで分数の割り算すら怪しいレベルでした。おそらく数学の素養みたいなものがなに一つなく、組み合わせや確率等アルゴリズム以前の基礎の概念からしてあやふやでした。 そんな僕に一番役に立った本は結城浩先生の「プログラマの数学」です。

プログラマの数学第2版

プログラマの数学第2版

  • 作者:結城 浩
  • 発売日: 2018/01/17
  • メディア: 単行本

この本は本当に良書です。数学の基礎がない自分でも読み進められるくらい解説が易しいですし、組み合わせ、順列、確率、再帰等競プロの常識ともいえる概念がコンパクトにまとまっていました。 この本を読んだ後はABCの茶色diffの問題を毎日少しづつ解いていきました。

f:id:sasa5740:20200503234751p:plain
精進継続中!

やっぱり精進をはじめてからグンと(当社比)レートが伸びたのでやっぱり精進が一番の近道ですね。

茶色になって思うこと

正直茶色になるのにアルゴリズムの知識はいらないと思います。Cまでは基本的に全探査で解けます。Dではじめて蟻本や螺旋本にでてくるアルゴリズムを使うと思います。
僕みたいに数学の素養が全くない人間が最初に蟻本や螺旋本に手をだすと勉強したことが自分の毎週解くべき課題にあんまり役に立たないという事態になりやすいです。
逆にいうとこれでやっとアルゴリズムというものを学ぶ準備ができたのだと思います。緑diffの問題で精進やっていくぞ。

追記

RubyAtcoderのテスト自動生成するライブラリを自作しているので、Ruby使ってる方ぜひ試してみてください。 僕はこれでうっかりWAはだいぶ減りました。

qiita.com