34
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

医学生がAtCoderで青色になった話【色変記事】

Posted at

はじめまして、rinmaoと申します。

先日AtCoderにて青色になり、そこそこ安全域に入ったので、初の色変記事を書かせていただきました。
青色を目指す人に限らず幅広い方を対象に書いたつもりなので、誰かの参考になれば幸いです。

img.png

自己紹介

  • 医学部生
  • プログラミング歴は約5年
  • 競プロではPythonを使用

当然と言えば当然ですが、やはり競プロをやっている方は理工学系の人が多いので、医学系の人でもプレイヤーが増えれば良いなと密かに思っています。

青色になるまで

灰〜緑

運が良かったこともあり、割と短期間で緑まで到達しました。
ただ、2019年当時は今よりもレートを上げやすかったと思います。
実際自分は緑に上がった当時、累積和や二分探索やDPといった初歩的なアルゴリズムすら全く知らなかったです。(今なら茶色にいけるかどうかってレベルでしょうか)

緑になってからは、競プロに関するいろんな記事を読み漁りました。
なによりアルゴリズムに関する知識がゼロだったので、出会うもの全てが新鮮で面白かったです。
この頃蟻本を購入しました。(途中で諦めて、今でも積読してしまっています)

水色

この期間が非常に長かったです。
実に1年以上停滞していました。
なんとなく実力が飽和してしまった感じがしました。
今考えるとただ単純に精進不足だったと思います。

やったりやらなかったりする時期をいろいろ経て、何とかレートも上がってきました。
苦手なアルゴリズムが無くなるよう、なるべく幅広くやっていきました。
後述もしていますが、よくするミスなどは書き出して再発が無いよう心がけました。
1500を上回ってからは、青色を仕留めようと、最近のABCの青色問題を埋め切ることに専念しました。

その成果もあってか、なんとか入青することができました。

Ratingを上げるために

精進

天才でもない限り、レートを上げるにはひたすら精進するしかないでしょう。

自分が精進に使った問題は

  • ABC
  • 典型90問

がメインです。
ABCは126回以降の青色以下を埋めました。
典型90問は★6までやりましたが、入青という点ではオーバーワークだったかもしれません。
1回目で分からなかった問題はメモっておいて、たまに解き直すようにしました。

ARCはちらほらって感じですかね。
蟻本は初期のころに半分くらいやりました。
AtCoder以外のコンテストサイトも多くあると思いますが、自分はめんどくさく全くやってないです。

自分の色より2個以上上の難易度の問題を解きまくってる人などをたまに見かけますが、個人的には遠回りな気がします。
それよりも自分にあったレベルの問題を早解きできる方が良いと思います。
もちろん高難易度の問題を一発解ければレート一気に上がると思いますが、分散が大きく安定しにくいのではないでしょうか。
恥ずかしながら、自分はいまだに黄色難易度のAC数は10問もありません。

コンテストへの参加

ABCには出来るだけ参加するようにしました。
「最近は精進してないから参加しない」はなるべくしないようにしました。

ARCは結構避けていました。
クセがある問題が多く、問題自体は面白くて好きなのですが、なんせパフォーマンスが安定しません。
正直青になった今でも安定する気が全くしません。
賛否両論あると思いますが、水・青色になるまでARCは全く出ないのもありじゃないでしょうか。

AGCはおそらく1,2回しか出たことがないと思います。

コンテスト後の反省

コンテストの結果が芳しくなかった時、その原因を追求することは非常に重要です。

原因が、凡ミス・時間配分ミス・誤提出・通信エラーといったようなものであっても、それを言い訳にするのはしないようにしています。
そういうのも全て込みで実力だと思うので。
どんなミスであれ、一度起こったのであれば、再度起こりうるので、その対策に集中すべきです。

例えば、「D問題で泥沼にハマってしまいE問題を見れなかったけど、コンテスト後にE問題をみたら瞬殺できた。」というようなことは往々にしてあります。
そう言うこと自体は問題はないですが、この状態でE問題を解ける実力を持っているからOKと流してしまうことはあまり良くないです。
現実としてコンテストのパフォーマンスを最大化する行動ができていないので、次に同じ失敗をしないように考えなければならないです。

自分はよくするミスはメモにまとめていて、コンテスト中に行き詰まった時などに見るようにしています。

言語の選択

コンテストにおいてはPythonしか使わずにきましたし、今後もPythonメインでいくつもりです。
シンプルに書けるので、遅いことにさえ目をつぶれば、メリットも大きいと思います。
それでも重めのDPなどはPythonだと相当上手く処理しないといけないってこともあるので、速い言語も使いこなせる様になりたいな…と思ったりもしています。

これから

入青するまでは青色に到達すれば十分と思っていましたが、いざ入青すると、黄色を目指したい欲が出てきてしまいました(笑)
Twitterを見ていると強者ばかりで、自分がまだまだだと実感させられます。
ただ正直、今後競プロに割ける時間も少なくなりそうなので、これが最初で最後の色変記事になってしまいそうです。
マラソン系に関しては初心者なので、もしやるならそっち重視かなぁと思っています。

ここまで読んでくださりありがとうございました。

34
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?