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

2018-11-25
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E9%9B%91%E8%AB%87
    

目次

はじめに

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

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

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

初めての参加

https://tech-blog.s-yoshiki.com/2018/07/294/

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

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

https://tech-blog.s-yoshiki.com/2018/08/421/

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

苦戦した原因

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

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

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

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

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

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

レベル感としては

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

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

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

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

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

ツール

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

https://tech-blog.s-yoshiki.com/2018/09/585/

レート感の話

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

    
s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV

関連記事

JSで32ビット符号付き整数に対してのビット演算でハマった
具体例 参考にしたサイト JSでサブネットマスクの計算を行おうとしたとき、ビット演算でハマりました。その時のメモです。 JSでサブネットマスクの計算 JSでビット演算子を利用する場合 3…

JSでIPアドレスがサブネットマスクで指定した範囲内にあるか判定する
IPアドレスが指定した範囲内にあるかどうか判定 参考にしたサイト JSでIPアドレス(IPv4)が指定したサブネットの範囲に含まれるか判定するロジックを作った時の記録です。 IPアドレスが指定した範囲内にあるかどうか判定 処理としては、IP…

プログラムの数値計算で発生する誤差の種類 丸め誤差・打ち切り誤差・桁落ち
はじめに 誤差の種類 丸め誤差 打ち切り誤差 桁落ち 情報落ち 桁溢れ誤差 参考にしたサイト コンピュータで出てくる誤差はいくつかありますが、 それらをコードに落として整理しました。 はじめに 例えば の計算の答えは 0.6666666666…

JSでサブネットマスクの計算
JSによるサブネットマスク関連の計算 IPv4アドレス文字列をNumber型に変換する CIDR と サブネットの相互変換 ネットワークアドレス と ブロードキャストアドレス クラス 改めて計算方法を整理する 参考にさせていただいたサイト JSでIPv…

10進数から2進数 2進数から10進数への変換 JavaScript
10進数から2進数 2進数から10進数 テスト 10進数から2進数、2進数から10進数への変換を行うJavaScriptのコードの紹介。 JSの場合、10進数から2進数への変換はメソッド。2進数から1…

JavaScriptの配列ショートハンド (AtCoder用)

JavaScriptでワーシャルフロイド法を実装
AtCoder ABC012 D問題 D - バスと避けられない運命 解説 実装 AtCoder ABC012 の D問題でワーシャルフロイド法が利用できる問題が出てきたので、 JavaScriptで実装しました。 AtCoder ABC012 D問題 D…

JavaScriptによる2分探索(バイナリサーチ) のサンプルコード
2分探索について ソース 参考 JavaScriptで2分探索(バイナリサーチ)を実装してみました。…

ハイフンとかマイナスとかダッシュとか

少なくとも、これら説明できない奴、エンジニアとして、マジでやばいので自覚した方がいいぞ。について
元ネタ(?) 派生 最後に Twitterでネタ(?)になっていたのでメモ。 元ネタ(?) https://twitter.com/t0riumi/status/1225422385093865472 派生 https://twitter.com/eg19/status…

最新の投稿

[JS]ラジアンから度数に度数からラジアンに変換する
コード 度数からラジアンへ ラジアンから度数へ サンプル ラジアンから度数に度数からラジアンに変換する際のスニペット。 コード 度数からラジアンへ ラジアンから度数へ サンプル

CentOS8 に Python + OpenCV をインストール
インストール テスト CentOS8 で標準で提供されているパッケージで Python + OpenCV 環境を構築する方法です。 検証した環境は CentOS8.3 (Docker) です。 インストール まず opencv…

[Perl] CentOS8 に plenv をインストール
インストール Step1 事前準備 Step2 PATHを通す (README通りにインストール) Step2 PATHを通す ($HOME以外にplenvをインストール) Step3 Perlインストール Step4 cpanmインストール CentOS…

JS/TSのclassでclass名を取得する
コード JS/TSのconstructorを利用して自分自身のクラス名を取得する際のメモ。 コード このコードの結果は次のようになります。

CentOS6(Docker)でyum update できなくなった
エラー内容 対応 CentOS6.10 で yum update しようとしたところエラーが出てアップデートできなかったので対応した時の記録 エラー内容 以下のようなエラーが出ました。 対応 を以下のように変更したところ解決しました。

PostfixでメールリレーしてMailHogで受信する開発用Dockerコンテナの構築
環境 Dockerイメージ作成 コンテナの起動 telnetで送信テスト phpで送信テスト Postfixのリレーを介して送信されたメールをMailHog(開発用SMTPサーバ)でキャッチするDocker開発環境を構築した際のメモです。 環境 Docker…

GitLab.com のコンテナレジストリで1つのプロジェクトに複数のDockerイメージをpushする
手順 GitLab.com のコンテナレジストリで1つのプロジェクトに複数のDockerイメージをpushする方法についてのメモです。 手順 まず、gitlab.comにて適当なリポジトリを…

Python poetryでパッケージ開発 PyPIで公開 Pytestでテスト CIをGitHub Actionsで回す
Poetry でパッケージ開発 pytest でユニットテストを実施しカバレッジを算出する パッケージをビルドし PyPI で公開する 検証環境にデプロイする 本番環境にデプロイする GitHub Actions で CI を回す codecovの設定 GitHub…

Perlでconstant(定数)をhashのキーに使う
ハマった事象 解決方法 1 括弧をつける 2 & をつける 参考にしたサイト Perlでconstant(定数)をhash…

php-fpmのステータスページを表示 Apache & htaccess
試した環境 php-fpm の pm.status_path について php-fpmのconfの設定 .htaccess の設定 アクセスしてみる 参考にしたサイト Apache環境で php-fpm のステータスページを htaccess…

Tags

Dates

© 2021   404 motivation not found