この記事は新歓ブログリレー33日目の記事です。
初めまして、20Bのくるりんです。
私はアルゴリズム班に所属していて競技プログラミングを雰囲気だけでしています。この記事を見ているのは競技プログラミング気になるけど完全初心者だし気後れするなあという新入生がきっと多いと思います。
ということで、競技プログラミングのおすすめ精進方法をお伝えしたいと思います。そもそも競技プログラミングって何?って人はこことかこことかここの記事を読んでみてください。
僕の競技プログラミング歴
精進方法の前にまずは僕がどのくらい競技プログラミング歴を軽く紹介したいと思います。
- 大学入学後の春休み、コロナの影響で暇だったものの何もしない日々を過ごしました。競プロの存在は知っていたものの高校生までは全くプログラミングをしたことがなかったので気後れして、この時期からは始められませんでした。今思うと始めるべきでした、、
- 4/27にAPG4bで初ACをする。
- 5/10に初ABC参加。
- 先日(2/13)水コーダーになりました。
- 現状ぎりぎり水コーダーで踏みとどまっています。
1日1AC
それでは僕のおすすめ精進方法を紹介したいと思いますがそれは見出しにもある通り1日1ACです。1日1ACというのは毎日競プロの問題を1問以上解く、という単純なものです。自分はこの精進を行う前は茶コーダーでしたがこれを続けた結果水コーダーになることができたと思っています。
CurrentStreak
AtCoderProblemsというサイトでユーザーの色々な情報を見ることができます。解いた問題の数や点数などが情報としてあり、その中にCurrentStreakというものがあります。CurrentStreakとは現在何日間ACを継続して行うことができているかを表していてこれが私のお勧めしている1日1ACの大きなポイントです。つまり現在私がどのくらい1日1ACを続けているかというと、2020/07/20から本日4/10までの265日となっています。我ながらよく頑張っていますね。
メリット
AtCoderのRatingなどは当然の話ではありますがコンテストに失敗し冷えて萎えてしまった、、などという経験が多いと思います。僕もよくなります。
しかしこの1日1ACにおけるCurrentStreakの値は毎日続けるだけで増えていき減少することはなく単調増加していく値なのです。よって増えていく値を眺めながらにちゃつくことができるということがまず一つ目のメリットだと思います。次に、毎日問題解くことで競プロの問題に慣れることができるということが二つ目のメリットだと思います。
デメリット
メリットがあれば当然デメリットもあると思います。自然の摂理ですね。
自分の思うデメリットの1つとしては忙しくてStreakが途切れたときに一気に精進に対する意欲が途絶えてしまう恐れがあるということです。自分も1度1カ月近くStreakが続いていた時に1日だけACし忘れて切れてしまった時に萎えて二週間近く何もしなくなってしまった、という経験がありました。なので、Streakが切れてしまっても精進できるぞという気持ちの持ち主かStreak絶対切らさないという自信がある人に1日1ACはおすすめです。
まとめ
1日1ACはもう十分競プロに慣れているという中級者以上の方というよりも早くレートを上げたいという初心者の方におすすめの精進方法です。毎日問題を解くことによって慣れる、ということが初心者の方にとっては最大のメリットであると思うので競プロ興味あるけどどうしようかな~という新入生に毎日1問だけでも解いて精進するといいぞ、という自分の考えを述べた記事でした。
2年ほど前に@hukuda222さんも1日1ACの記事を書いているのでこちらも参考にするといいと思います。また、このことからなんだかんだ1日1AC力になるのでは?というお気持ちがあります。皆さんも1日1ACしてレート爆上げして気持ちよくなりましょう。
ご覧いただきありがとうございました。
明日の担当者は @mazrean さんです。楽しみ~