LeetCodeを使ってアルゴリズムの勉強&面接対策
今回は、LeetCodeというプログラミングの学習サイト兼就活・転職サイトを紹介したいと思います。
LeetCode - The World's Leading Online Programming Learning Platform
どんなサイトか
プログラミングの勉強ができるサイトですが、競技プログラミングサイト的な側面と、就活サイトとしての側面も持っているサイトです。利用料は基本的に無料で、本気で職探しをしているのでなければ全然無料で満足できます。
日本でも、プログラミング学習サイトとしてProgateやpaiza(こちらは職探しもできますが)などがあります。しかし、LeetCodeはこれらの学習サイトと比べるとやや難易度が高く、全くの素人のための学習サイトではないという感じです。また、とても多機能で、このサイトだけでいろいろなことができそうな感じです。学習コンテンツに関してはアルゴリズム系が主で、言語そのもののコンテンツとしてはRubyの入門があるくらいです。
機能
面接対策
企業の面接対策のためのコンテンツも充実しています。しかし、いわゆる「よく出題される問題」的なものは無料で使えるのですが、企業ごとの問題を見たり解いたりするには有料会員になる必要があります。問題が掲載されているのは下のような名だたる企業です。
また、疑似面接(Mock Interview)を受けることもできます。こちらだと無料会員は企業名や業種を選択できないという制約があります。
オンラインジャッジ
競技プログラミングサイトのように問題を解くことができます。言語はC, C++ Java, Ruby, Python等色々使えます。出題されている問題は、よくある競プロサイトとは少し違います。というのも、例えばAtCoderではコードは一から作りますが、LeetCodeではクラスが用意されていて、そこに回答を入力していくという感じになっています。普通、競技プログラミングではクラスを使うことはない(?)と思うのでこれは新鮮でした。
ユーザー同士の議論・交流
LeetCodeではDiscussionという欄があって、ユーザ同士が議論したりできます。議論のテーマはざっくり分かれていて下のようなジャンルがあります。
また、Articleというタブもあって、こちらはまだあまり使っていないので詳しいことは言えませんが、ユーザー(?)の書いた記事を読むことができます。多くは問題に関する記事であるように感じました。
コード実行環境(Playground)
自分の書いたコードをサイト上で実行することができます。
NewでPlaygroundを新たに作ると下のような画面になります。
言語もだいぶいろいろ選べます。書いたコードは保存して後で開くこともできます。
まとめ
上で紹介したようにLeetCodeは多機能で、プログラミングの勉強にはうってつけの機能がそろっています。特に、アルゴリズムの勉強がしたいという人には非常に便利なサイトだと思います。