AtCoderで入緑したからnote書きます

みなさん初めまして。エッティです。先日、オンラインプログラミングコンテスト「AtCoder」にてrating800(rating800以上でユーザーネームの色が緑色になるので巷では入緑とか言われるらしい)を達成しました。入緑したからといって特に記事とか書く予定はなかったのですが、こんな私のつぶやきを見てくれている人がいるということで何か書きます。noteを書くのは初めてなのであまり期待しないほうが良いです。

自己紹介

名前:エッティ
Atcoderのユーザーネーム:etty
Twitter:@very_yami__
大学:岡山大学大学院(2022年7月の時点で1年)
専門分野:Bayesian Networks(統計学)

だいたいこれくらいはTwitter見れば書いてます たぶん
知らなくてもあまり問題ないです

AtCoderを始めたきっかけ

2020年に高校の時の友人(本人がこの記事を見て公開していいよと言われたらTwitterIDを公開します)からこんなものがあるからやってみないかと誘われました(DM消えてたので正確な時期は分かりません)。コンテスト初参加が2020/5/30の「NOMURAプログラミングコンテスト2020」なのでそれくらいの時期だったと思います。
私事ですがTwitterの別垢でトラブルを起こしてて疲れてた(当時のアカウントは消しています)のでちょうど熱中できるものができて良かったです。

Atcoderを始めたころは大学の授業でC言語とPython、Rを扱っていたこともあり、プログラミングに対する忌避感などはありませんでした。授業で扱った3つのうち、Pythonが一番直感的でわかりやすかったのと、授業の一環で自身のPCにインストールしていたのもあり、AtCoderはPythonで始めることにしました。

入緑するためにやったこと

ここ書くのが一番大変そうだなぁ

入緑するために何をやったと聞かれるとすごく返答に苦しみます。
とりあえず時系列順にやっていたことを書いていきます

  • AtCoderを始めたての頃

標準入力というものを理解するところからでした。
最初の数回は問題の答えが分かっても標準入力ができないことで時間をたくさん使ってました。map関数やlistの標準入力を何も見ずに書けるようになるまで2か月くらいかかりました。

  • C問題が見えてきたころ(まだrating400未満)

A,B問題を合わせて20分くらいで解けるようになったころ、C問題についても問題の意味が理解できるようになってきました。理解できるだけでだいたいTLEになってましたが……
ここで初めて計算量という概念を知りました。これ以降は計算量を意識しながら問題を解くようになっていきます。

  • rating400(茶色)のころ

rating400(茶色)になったくらいの頃にエラトステネスの篩を実装してみました。理由は忘れましたが。初めて自分でライブラリを作ったのは今後に影響を及ぼすかも?(今は特に感じていません)
二分探索もこのころに作りました。大学の授業を思い出しながらでしたが結構楽しかったと思います。

  • rating600を超え始めてから

慣れてきたのか、C問題までは問題を見て数分考えれば何となくの解法が思い浮かぶようになってきました。解法が思い浮かぶまでの時間を短縮するにはとにかく反復練習するしかないと思います。コンテストに参加するのが一番いいです(平日はゼミ等があったためあまり復習などできていなかった)。週末のコンテストだけでもここまでできるようになるので、平日に復習すればもっと早く実力が伸びると思います。
D問題は同種のC問題を解いていけば自然と解けるようになると思います。これも反復練習が必要ですね。

  • 全体を通して

とにかくコンテスト中も
コードを書く→サンプルで試す→間違っていそうなところを直す
の繰り返しでした。
手を動かすと見えてくるものもあります。

今後の展望

グラフ問題は全くできない(入力の方法すら理解していない)ので教えていただいたサイト(アルゴ式 (algo-method.com))で勉強します。タイピングが遅いこともあり、早く解くだけでは限界を迎えているため、D問題、E問題で頻出のグラフを攻略することが次のステージに進むために必要だと考えています。
入緑は自分の勉強の結果であり喜ばしいことではありますが、入緑するためにAtCoderをしてきたのではありません。ここをゴールとは思わず、今後も努力を続けていくことが自分のためだと思うので頑張っていきたいと思います。

いいなと思ったら応援しよう!