10
6

AtCoder入水しました!!!!~ゼロから入水までの軌跡~

Posted at

15歳高校一年生(執筆当時)のなななです。プログラミングを始めて一年ちょい2024年の8月17日に入水しました!嬉しいです。
少しでもこの記事が他の人のお役に立てたらいいなと思います。
入水までの遷移です。
1692.jpg
入水までにやったことです。(AtCoder Problemsより)
1705.jpg
1704.jpg

まず水色のレベル感

AtCoderの社長のchokudaiさんの記事です。
https://chokudai.hatenablog.com/entry/2019/02/11/155904

水色 (Bランク R1200~1599 上位15%)
水色はかなり優秀です。普通に企業とかで超優秀って言ってるプログラマが居た時に、半分くらいはこのランクになると思います。数学が得意なタイプだと、この一つの上の青色に行きますが。
半数以上のIT企業において、アルゴリズム能力についてはカンストと言えるでしょう。特にアルゴリズム的な能力を必要としない会社であれば、ここから上はレートを上げても実務に役立つ部分はほとんどありません

なんかすごいですね(KONAMI )

入水時のスペック

.数2Bくらいは何となくわかる。数3になるとほとんどわからない。
.数学はどちらかと言えば得意。(OMCは緑色)
.プログラミングとかパソコンとかはよくわかんない。
.c++が書ける。
.普通の高校一年生。

競プロを始めたきっかけ

 中学2年生の終わりくらいの時に暇つぶしにプログラミングをいじってみました。中学3年生の6月に作りたいものは特になかったので、練習にAtCoderを始めました。この時プログラミングはなんか見ないとできないくらいのレベルです。

灰色から入茶まで

茶色はプログラミングに慣れればいけそうだなーと感じたので、A問題とB問題をひたすら埋めていました。この時意識したのは他人のコードを積極的にパクるということです。AtCoderでは他人の提出を見れるので問題を正解しててかつ自分と言語が同じ人のコードを見れます。その中からいいと思ったコードを参考にしていました。

学んでよかったもの

if forなどの基本的な構文

 https://onlinejudge.u-aizu.ac.jp/courses/list
 僕は会津大学さんがやっているサイトのコース→プログラミング入門というところ
 やりました。入出力がAtCoderの形式と同じなのでおすすめです。
 またhttps://atcoder.jp/contests/APG4b/tasks このAtCoderがやっているAPG4bもおす
 すめです。

set map pairなどの便利なSTL

 https://qiita.com/e869120/items/518297c6816adb67f9a5
 僕はE869120さんのこの記事を参考にさせてもらいました。

計算量の概念

 競技プログラミングで一番大切な概念です。

その結果https://atcoder.jp/users/soutome/history/share/abc314 2023 8/12に入茶しました!!!(やったー)

茶色から入緑まで

こっからアルゴリズムを勉強した記憶です。具体的なアルゴリズムとしては(優先度順)
.ニ分探索
.深さ優先探索
.幅優先探索
.累積和
.UnionFind
.bit全探索
.DP(動的計画法)
.imos法
.約数、素因数分解(エラトステネスの篩)などの数学的なもの
.ダイクストラ法、トポロジカルソートなどのグラフ系のアルゴリズム
.メモ化再帰

ここら辺の基礎的なアルゴリズムを習得して適切に使えるようになれば緑になれると思いますし、もっと言うと水色にもなれると思います。

その結果https://atcoder.jp/users/soutome/history/share/abc330 初めて水色perfを出して入緑しました(嬉しいね)。

JOI本選に行く

灰色の時からJOI本選を目標としていましたが、入緑してからちょっとして
JOI二次予選で100-100-45-0-9を取って本選に行くことができました!
競プロやってて一番嬉しい瞬間だったかもしれません。本選ではCランクで散々な結果でした(来年頑張ります!)

緑から入水まで

この時くらいから公開垢でXを始めました。元々鍵垢で競プロ界隈の存在は知っていました。
この時新しく学んだアルゴリズムはほぼないと思います。前述したように基礎的なアルゴリズムを適切に使えるようになれば入水できると思います。緑の時と比べて、多少の応用力と何より実装力が必要になってくると感じました。そのために緑の問題と水の問題をひたすら解きました。自分は実装力に問題を感じていたため、時間を意識してコードを書いていました。

入水までの遷移

4つに分けます
1724233878748.jpg

⓵停滞期

入緑が結構急だったため、実力が追いついてなかったんだと思います。またこの時体調が悪かったのも原因に多少あるかもしれません。

②ブレイクスルー

3連続水perfを出して+120くらいの大躍進をしました!停滞期を抜け出してすぐ入水するだろうと考えていたのも束の間....

③微増期

+5から+20くらいの微増を繰り返していきました。精進もコツコツやっていたため努力がレートにそのまま表れた感じです。ここら辺でいろんな人にレートが抜かれたり差が縮まっていきました(悔しい!)

④入水!?

ABC366で初めて青perfを出せました!!
D問題が詰まりそうだったのでE問題を先に解いて戦略勝ちしました。
ここで遠いと思っていた水色が一気に近づきました。
そしてついにABC367で5完して入水しました!!!!!!!!!!よっしゃーーー
https://x.com/W0VKS1Cm8hwomGk/status/1824804063466361208
↑その時のツイート。競プロ界隈の色変を祝う文化すごく良い!

入水は嬉しいですが競プロ人生の序章に過ぎないと感じています。もっともっと強くなれるように精進を重ねます。

今後の目標

.まずは青コーダーになりたいです。12月に1400、2月に1600くらいのスピードで入青したいです。(できるとは言っていない)
.9月のPCKで良い結果を残したいです。https://x.com/gengar094kypro 同校水コーダーと幻想郷と言うチームで出ます。
.JOIの春合宿に行きたいです。
.オンサイトコンテストに参加して界隈の人と交流をしたい!
.高校生活を楽しみたい!

10
6
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
10
6