AtCoderで初めて色がつくまでの話(茶色) レートが中々上がらなかった原因

AtCoderで初めて色がつくまでの話(茶色) レートが中々上がらなかった原因 アルゴリズム




はじめに

AtCoderで、ついに色がつきました。茶色になりました。
始めた当初は、はっきり言って茶色なんて大したことのないランクだと思っていました。

というのも、ある程度ランクが高い人のコンテスト成績表をみると、最初の2〜3回でだいたい灰色を卒業をしており、特に高い人は1回目で茶色に到達している人いたので…全くのプログラミング初心者ではない自分も、少し回を重ねるだけで到達する程度のものだと思ってました(謎の自信)。

しかし、ここまで来るのに4ヶ月、回数にして10回目の参加での到達で想定よりも時間がかかってしまいました。

初めての参加

初めて参加したAtCoderで惨敗した話
初めて参加したAtCoderで惨敗した話
7/21についに初めてatcoderに軽いノリで参戦した。で、惨敗した。敗因と対策を書きます。 <ul> <li>標準入出力に手間取りロジックを考える時間が奪われてしまったこと。</li> <li>綺麗に書くことは捨てる</li> <li>3の問題が時間オーバしてしまう</li> <li>配列操作に手こずった</li> </ul> pup push shift map などの機能を完璧に押さえておけばググる時間を省くことができたんじゃないかな...と思った

初めての参加は、勢いで参加し、事前調査もせずぶっつけ本番で挑みました。
標準入出力から値を受け取るだけで、四苦八苦してしまい結果も散々でした。

3回目くらいで雰囲気を掴む

AtCoderに3回出場してわかったこと (AtCoder ABC 107 反省会)
AtCoderに3回出場してわかったこと (AtCoder ABC 107 反省会)
Performances of yoshiki1123 (2018-07-21〜2018-08-25) #AtCoder_Performances pic.twitter.com/bKYLONxp5W— s-yoshiki ...

3回目の出場くらいで問題の雰囲気や傾向、コツがわかりました。
もちろん、しっかりと対策を立てた上で1回目から出場していれば最初の数回を棒に振ることもありませんでしたし、
低レートを叩き出すこともありませんでした。

苦戦した原因

ここまで時間がかかった要因は、単純な実力不足ですが、強いて他の理由をあげるのであれば、
上にも書いたように、最初の数回で連続で低スコアを出してしまい、レートが上がりづらい傾向が出ていたのではないかと思います。
まず、そもそもAtCoderの仕様として、リセマラ封じのためによっぽど成績が良くない限り、最初の数回は実力よりも低いレートになるようです。

レートの上がり方について

最初の数回は、悪いスコアを連続で叩き出していたたため、上がり方が緩やかな感じでした。
何回かやっていくうちに、ABCのCD問題をクリアするのは厳しいと思い、AB問題に全力で取り組むことに集中しました。

具体的にはAB問題を5分前後で解くようにしました。

これだけでも、パフォーマンスを700〜1000程度出すことができました。

各問題の内容と必要になる思った知識 – ABCの場合

レベル感としては

A <= B <<< 壁 <<< C < D

のようだと感じています。

A問題に関しては、基本的な四則演算、プログラミング構文、

B問題は、上記の要素に加え、配列操作やソート、マップなどが使えること(FizzBuzz程度)、

C、D問題は、基本的なアルゴリズムを押さえておかないと解くのは厳しいかと思います。

ツール

また、初期にレートが上がらなっかた要因として、開発しやすい環境を整えなかったことも一つだと思います。
AtCoder上にコードテストする機能があり、それを使って最初の数回はデバッグしていましたが、自分用の環境を整えてデバッグするようにしました。

Monaco Editorを使ってブラウザ上で動くAtCoder用のデバッグアプリを作る【JS】
Monaco Editorを使ってブラウザ上で動くAtCoder用のデバッグアプリを作る【JS】
概要以前書いた「【JavaScript】AtCoderとかでも利用したい、ブラウザで動くエディタ + デバッグ環境を作る」を流用して、エディタ機能に「Monaco Editor」を利用した、AtCoder用のデバッグ環境を作りました...

レート感の話

プログラマとしては最低、緑くらいなきゃ厳しいのかな…がんばろ
終わり