競技プログラミングの魅力

私なりに競技プログラミングの魅力と続けるために気をつけていることを書いていこうと思います。

考え方の引き出しを増やす感覚

ちなみに私の競技プログラミングのスペックは高くありません。職業はプログラマーではありませんし、下手の横好きでやってます。

競技プログラミングに参加して、自分が嫌になることもあります。何でこれに気づけなかったんだろうとか、レーティングが下がったとか。

それでも続けようと思っている理由としては、自分が気づけなかった解法に出合えた時の喜びが強いからです。

問題を解く時にいろんな角度から考えるのですが、そこで今までにない視点と出合えて、問題を解けたときは嬉しいものです。解けなくても解説を読んで今までにない見方が理解できたときは、自分の中で頭の中の「引き出し」が1つ増えた感覚になります。

他の人のコードを読むのも学びがあって、こっちの方がわかりやすい書き方だなとか、簡潔な考え方だなと思えたときは少し成長できた気分になります。

こういうのを繰り返していると問題を読んだ時の感覚が変わってきます。同じ問題でも今の自分と過去の自分では違う景色に見えているのも面白いと思います。

レーティングを目的にしない

レーティングは実力を見える化してくれるので良いツールだと思います。

でも気にしすぎると、下がるのが怖くなって参加したくなくなってしまいそうなので、後からついてくるくらいの感覚が自分にはあってるのかなと思います。

レーティングを上げるために続けるのではなくて、少しでも考え方の引き出しを増やしていけたらと思って続けています。

毎日手を動かして解く

何かしら簡単な問題でも良いので1日1問は解くようにしています。私は怠惰な性格ということもあり、こういうことは習慣化しないと続けられないです。夜遅くて最悪の体調で疲れていてもatcoderのA問題は解いています。

あとはせっかく空で書けるようになったアルゴリズムが書けなくなるのも怖いので、たまに空でアルゴリズムを書くこともあります。根本的な考え方を覚えていれば大体は書けるのですが、低スペックの私の場合、書くスピードは格段に落ちてしまいます。