竸プロ精進記:AtCoderレーティング600到達した

レーティング600に到達

2020年11月22日のABC184において、ノーペナ54分20秒での3完。レーティングが+41されて茶色コーダーの折り返しであるレーティング600を超えました。

茶色に到達したのが、2020年8月のことだったから3ヶ月での到達でした。上のグラフを見ると一進一退しながら調子の良いときにレーティングを稼いでなんとか到達してきたのがわかります。

入茶 2020年の4月にatcoderを始めてから4ヶ月、ついに灰色コーダーを卒業し茶色コーダーになりました!30も半ばを過...

成長を感じたABC184

このABC184結果的に3完で終わりましたが個人的には成長を感じるコンテストでした。なんと言ってもC問題、Super Ryumaをなんとか自力で時間内にACに持っていけたこと。

最初見た時、BFSとかの探索を行う必要があるのかと思ったけど、制約条件の厳しさから、BFS、DFSではないだろうと察知したこと。それからC問題でそのようなアルゴリズムが出てこないであろうこと。また、順位表の情報からよく実力を知っている竸プロerたちがそれなりに時間をかけて解いていることから、典型的なアルゴリズムではなく、思考力を使ってO(1)で解く問題と検討をつけて、なんとか落ち着いて場合わけして解いていきました。

sample caseとして与えられた3例もフルに活用して一般化した形に落とし込み、最終的にノーペナでAC。ガッツポーズものでした。その後のD、E、Fについては手が出なかったけど、半年前の競技を始めた頃に比べれば成長を実感できたコンテストでした。

最近の精進状況

AtCoder Problemsでstreakを繋ぐ

最近はとにかくAtcoder Problemsの連続でACしている日数を計測するCurrent Streakの日数を伸ばすように、毎日最低でも1ACを心がけています。どんなに簡単な問題でも、毎日竸プロの問題に触れてコーディングをすることは私のように竸プロでしかコーディングする機会がない竸プロerにとっては大事なことのように思います。少しでも時間を作って頭を慣らしておく必要があるかな。

AtCoder ProblemsのRecommendationで問題を解く

毎日どんな問題を解くか、なんですが問題をチョイスするのに便利なのが、Atcoder problemの自分のレーティングに応じた難易度の問題を選んでくれるrecommendation機能です。難易度Easy, Moderate, Difficultから選ぶことができますが、私はもっぱらeasyばっかりやってます。会社の昼休みとかに10分くらいで解けるやつをまずやっつけてstreakを確保。後は仕事終わって家に帰った後時間が取れれば別の問題もやってく。

AtCoder ProblemsのBootcamp(Training)をやる

recommendation以外に解くものは、同じくAtcoder problemsのトレーニング機能。このうちのmediumに挑戦中です。自分にとっては結構手応えある内容なので、スイスイとは進まないのですが、まとまった時間が取れるときに頑張って進めてます。もうすぐ折り返しの50ACまで来るところですね。

職場のバチャコンにはあんま参加してない

一方で以前はまめに毎週参加していた職場のソフトウェア技術者たちがやってるバチャコンには最近参加しなくなりました。色々と他の仕事もある中、自分の職務内容から考えて勤務時間中にやる内容ではないな、と感じてしまったので。それでも精進はマイペースで続けられるので、今のところ竸プロ生活にはほとんど影響は出てないです。

今後の課題

ある程度、基礎的な力はついてきた気がするので、典型的なアルゴリズムやデータ構造の学習を進めて自分のものにして行きたいです。

  • DP:動的計画法
  • DFS
  • BFS
  • ツリー構造の扱い
  • 二分探索

などなどでしょうか。特にDPとDFS、BFSはアルゴリズム的にも、すげーって最初感動した内容なので、意のままに操れるようになりたいなって思います。

レーティングは上がったり下がったりするもので、絶対的なものではなく、周りの竸プロerとの相対比較できまるもの。あまり一喜一憂すると病んでしまいますが、それでも上がった時は嬉しいもの。今の勢いで、当初の目標の緑コーダーまで精進していこう。