ユユユユユ

webエンジニアです

AtCoder で緑難度の問題を解けるように稽古している

 競技プログラミングの練習、いわゆる「精進」を11月から再開している。

 9月から10月までは、仕事探しの一環でカジュアル面談に多く参加してみたり、面接対策に時間を割いていて、しばらく間が空いていたのだった。コンテストへの参加もしばらくご無沙汰になっており、9月に茶色レーティングになってからはとくに、勉強時間も参加時間も捻出できていないのであった。

 いま、仕事探しがひと段落を迎えたところで、あらためて稽古にいそしんでいる。

 再開直後は感覚がやや離れている感覚があったが、これはすぐに回復させられた。もともと夏あたりの時点では「ABCで問題Cまでを30分前後で攻略できること」を目標にしていた。この方針である程度の手応えこそ得られ、結局問題Cまでしか考慮にいれない戦略であって、その先は運任せになってしまっていた。茶色難度までを効率的に攻略することに集中できても、その先の難度の問題を解く実力は必ずしも向上しなかった。つまるところ、問題Cまでをスピーディに回答できても、そのさきでさらにスコアを積めるとは限らないし、問題Cまでの時点で躓いてしまうと挽回するのがこの上なく困難になってしまうわけである。

 端的にいって、次のステップに進むべきときなのだろう。そこで、最前よりはABCの問題Dにおよそ相当する、緑色難度の正答率をあげることを目標において取り組んでいる。問題集としては、 AtCoder Problems のトレーニングモード で難度 HARD の百題を先頭から順に取り組んでいる。

 やってみると慣れるものなのか、わりにうまく解くことができることも多く、手応えは感じられるし、それが心地よい。6問に1問程度、うまく方針を立てられずに解説に助けを求めてしまうものの、およその精度としてはそう悪くないし、さらに練習を積むことで改善できるイメージも湧いている。一問あたりの回答時間もおよそ40-60分ほどに抑えられているから、本番のコンテストでもいくらかは使い物にできるのではないかとおもっている。

 ちなみに同じトレーニングモードで中級をコンプリートしたのが8月末であった。そのときの記事がこちらになる。

jnsato.hateblo.jp

 これを終えた直後から2ヶ月以上中断していたわけだが、まだまだ成長できていることを感じられて非常に励みになる。さしあたり、この調子で稽古を積んでいけば、向こう2-3ヶ月中にはレーティングを緑に更新できるくらいの手応えはある。せっかく最初から C++ を選んで取り組んでいるのだから、そのアドバンテージを活かせるレベルまで早く到達したいともおもうが、これはまだまだ身の丈に合わない願いだろう。

 成長を感じられることが何より嬉しいことである。そしてこの感触は、日々コツコツと稽古を積み重ねてこそ心地よく感じられる。ひとまずは目の前の問題群を順繰りに解いていくこと、そしてきちんと本番コンテストに継続的に取り組むこと、このあたりの緩いハードルを目標においてのんびりと続けていきたい。