52
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

才能ゼロの私が半年で水コーダーへなるためにやったこと

Posted at

こんにちは。
競技プログラマーのriver0525です。

本記事では、競技プログラミングの才能ゼロの私が半年でAtCoderのレートを茶→水へ上げた方法を解説します。

執筆時点の私のスペック

才能ゼロと書けば疑う方がいると思うので、執筆時点の私のスペックを書きます。

  • 高専2年生
  • AtCoder アルゴ:水 ヒュ:茶
  • JOI2次予選落ち(3戦3敗)
  • 高専入試過去問の理数系科目の素点60点台
  • 中学生で競プロに出会うも、レートが上がらず灰色のまま1年以上放置
  • 競プロを始める前のプログラミング経験はゲーム制作のみ

これらの経歴を見ればわかるように、私には競プロの才能も、数学的センスもありません。
完全に凡人です。

そんな私がAtCoderを本気でやる気になったきっかけは、けんちょんさん(@drken)が講師を務める茨城県プログラミングエキスパート育成事業に参加したことです。
そこで出会ったトップクラスの高校生競プロerの方々を見て、自分が井の中の蛙だったことを知ると同時に「この人たちと同じくらい精進したら自分はどこまでいけるのだろう」という好奇心がわき、本格的な精進を始めるに至りました。

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

私が入水を目指して精進を始めたのは、プログラミングエキスパート育成事業が本格的に始まった2025年6月頃からです。

その頃から急激にレートが上がっていったことがグラフから分かります。

image.png

精進を行う前の私には以下の3つの課題が見られました。

  1. 問題を解く習慣がない
  2. アルゴリズムの知識がない
  3. 早解きが苦手

そのため、これらの課題を解決するための方法を考え、実践していきました。

まず、問題を解く習慣をつけるために1日最低何問解くかを決めました。
プログラミングエキスパート育成事業内でけんちょんさんには1日3問を目安にするとよいと言われましたが、私はレートがメンバーで最も低く、それでは絶対に追いつけないと思ったため、1日5問、多い月は1日7問を目安にして解きました。

以下は私のHeatmapですが、概ね目標達成できていることが分かると思います。

image.png

次に、アルゴリズムの知識をつけるために大量の過去問演習を行いました。
解いた問題としては

  • ABC212~318の茶Diff以上のC問題全部
  • ABC212~最新までのD,E問題全部
  • ABC212~318のF問題全部
  • ARC104~最新までの緑Diff以上のA問題全部
  • JOI難易度5、6、7、8全部
  • JOI難易度9を6問
  • PCK予選の中難易度の過去問複数
  • EDPCはZ問題を除く全部
  • TDPCはA~F、H~N全部

等です。

image.png

image.png

image.png

image.png

無論、これだけの問題を学校に通いながら何の代償もなくこなすのは不可能です。
私は学業と健康を犠牲に、これらの時間を捻出しました。

最後に、早解きを鍛えるため、適正難易度5問を1時間で解くバーチャルコンテストを作成し、ひたすら解きました。

image.png

自作バチャだけでなく、ABC6問時代の最高難易度が水Diffくらいの回のバチャをやったりもしました。

image.png

やってよかった精進

先ほど挙げた中でやってよかった問題は

  • ABC212~318の茶Diff以上のC問題
  • ABC212~最新までのD,E問題
  • JOI難易度5、6、7
  • EDPC、TDPCの最初のほうの問題

です。

やはり、水コーダーになるには緑~水Diffの問題をひたすら解きまくるのが効果的です。
特に212~のD、E問題を全埋めしたのはかなり実力につながったと思います。

以下に、入水を目指す人へのおすすめの過去問演習手順を紹介します。

まず、灰→茶へ上がる段階ではひたすらC問題を解きましょう。
安定して3冠できるようになると入茶できます!

茶→緑に上がる段階では

  1. 212~318の茶色以上C問題
  2. 212~318のD問題
  3. 319~の茶色以上C問題
  4. 319~のD問題

の順に、緑→水なら

  1. 212~318のD問題
  2. 212~318のE問題
  3. EDPC、TDPCの最初のほうの問題
  4. 319~のD問題
  5. 319~のE問題

の順にやるといいと思います。

これに加えて、JOIの2次予選突破を目指す人は本番2カ月前くらいから難易度5~7を順に埋めていくのがいいでしょう。

また、ある程度問題を解いたらバチャを作ってやってみるのがおすすめです。
早解きが鍛えられるだけでなく、時間制限を設けることで集中して演習に取り組めます。

やらなくてもよかった精進

逆にこれはやらなくてもよかったと思う問題は

  • 212~318のF問題
  • ARCの問題
  • JOI難易度8、9
  • EDPC、TDPCの中~高難易度問題

です。

私はこれらの問題を緑コーダー時代にやりましたが、3問解説ACしただけで一日が終わってしまい、全く身になりませんでした。
青~黄色コーダーがやるような問題なのですから当然です。

また、私のように学業と健康を犠牲に精進の時間を捻出するのもおすすめはしません。
無茶な精進をしたことで

  • 学業を犠牲にしたため、学校の勉強がほとんど頭に残っていない
  • 人格への悪影響(感情の希薄化、コミュニケーション能力低下、ストレス増加)
  • 肌トラブルの増加

などの問題が生じたからです。
皆さんも無理はし過ぎないようにしましょう。

才能ゼロでも入水する方法

ここまで読んでくださった方ならもうわかると思います。
才能ゼロでも入水する方法は圧倒的な努力です。
それさえやれば誰でも水コーダーになれます!

それに加え、毎回ABCに出ること。
負けが続いて辛くてもです。
なぜなら、一時的に負けが続いていてもあなたが毎日継続して努力しているのならば、どこかしらのタイミングであなたの得意問題が必ず来るからです。

以下は私のコンテスト成績表です。
緑パフォが続いて伸び悩んでいるときでもコンテストに出続けたことで、得意問題が出た回を逃さず青パフォを2回叩き出せています。

image.png

逆にJOIなどは一発勝負のため、才能がないと何年たっても受からない可能性が高いです。
実際、私は灰色時代に2回、そして入水してから1回参加していますが、いずれも2次予選敗退の結果に終わりました。

まとめ

入水するためには以下の3つのことをやりましょう。

  1. 毎日問題を解く習慣を作る
  2. 自分と同色~1色上の問題を解く
  3. 負けが続いてもめげずにコンテスト出場を続ける

才能がないと感じる人でも、これを続けていけば必ず入水出来ます!

最後に

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

最後に、けんちょんさんをはじめとするプログラミングエキスパート育成事業の皆様に、この場を借りてお礼申し上げます。
この1年間、ご指導いただき本当にありがとうございました。

今後は競プロ難易度表の作成など、凡人だからこそできる界隈貢献をしていこうと思います。
進捗をXにあげているので、興味があれば覗きに来てください。

それでは、またどこかでお会いしましょう!

52
28
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
52
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?