見出し画像

偏差値30の私が、競技プログラミング始めました。

皆さん、こんにちは。中川@ナマポエンジニアです。

突然ですが、最近競技プログラミングを始めました。経緯としては、使ったことのないライブラリや言語で開発をしていたのですが、中々思うようにコードを書いたり出来ませんでした。

色々、原因を分析した結果、一つの答えに行き着きました。

アルゴリズム力がまだまだ未熟

私自身、数学の勉強を学生の頃にしてこなかったのもあり、アルゴリズム力が足りていなかったようです。

アルゴリズム力を鍛えるにはどうすれば良いのかを調べたところ、競技プログラミングが良いことに気づきました。有名どころは、Atcoderなどがありますね。

Atcoderを始めようとしたのですが、難易度が高く未熟な私には無理そうでした。そのため、もう一つランクを下げて良いサービスがないかを調べていたところ、良さそうなサイトが2つ見つかりました。結論から言いますと、CodewarsとLeetCodeです。

Codewars: https://www.codewars.com/
LeetCode: https://leetcode.com/

2つともアルゴリズムの問題を解くサイトなのですが、Codewarsはコードの綺麗さを求めるのと、LeetCodeは処理の速さを追い求めるという大きな特徴の違いがあります。

ただ、どちらもある程度の処理の速度を求める必要があり、あまりにも遅い処理では正解になりません。初級クラスの問題でも、二重ループでは正解にならないのもありますので、そこらへんは非常にシビア。

今の時代、あまり処理速度を意識する必要がないのかもしれませんが、それでもデータが多かったり、アクセスが多いと遅い処理ではサービスにも影響があります。そのため、どのようなプログラムを実装するにしても、処理速度は意識する必要があるでしょう。

結論、脳トレにも良さそうですし、少しでもプログラミングが上手くなれば良いなあと思い競技プログラミングを始めました。

メモとして、noteで更新していきますので、よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?