LeetCode(リートコード)とは?始め方・使い方・難易度・料金をわかりやすく解説
LeetCode(リートコード)とは、アルゴリズムやデータ構造に関するプログラミングの問題が大量に用意された、オンラインのコーディング問題集サイトです。実際のコードを書いて提出すると、自動で正誤や実行結果を判定してくれます。特に、世界的なテック企業のコーディング面接(コーディングテスト)対策の定番として知られ、エンジニアやエンジニア志望者に広く使われています。本記事では、LeetCodeの特徴、アカウント登録から問題を解くまでの始め方、難易度や問題の選び方、対応言語、無料版と有料版(Premium)の違い、学習のコツをわかりやすく解説します。
※料金や機能は変更されることがあります。最新の情報はLeetCode公式サイトで確認してください。
目次
LeetCodeとは(特徴)
LeetCodeは、プログラミングの問題を解きながらアルゴリズム・データ構造の力を鍛えられるプラットフォームです。主な特徴は次の通りです。
- 豊富な問題数:アルゴリズムを中心に、データベース(SQL)、シェル、並行処理など、数千問の問題が用意されています。
- 自動判定(ジャッジ):書いたコードを提出すると、用意されたテストケースで自動的に正誤を判定してくれます。実行時間やメモリ使用量も確認できます。
- 面接対策に直結:世界的なテック企業の面接で問われるタイプの問題が多く、コーディング面接の準備に向いています。
- 他の人の解答を学べる:解いた後に、他のユーザーの解法やディスカッションを参照でき、より効率的なアプローチを学べます。
問題文は基本的に英語ですが、コード例や入出力の形式が明確なので、英語が苦手でも翻訳機能などを使えば取り組めます。
LeetCodeの始め方
LeetCodeは、アカウントを登録すればすぐに使い始められます。最初の1問を解くまでの流れは次の通りです。
- アカウント登録:公式サイト(leetcode.com)でアカウントを作成します。Google・GitHub・Facebook・LinkedInのアカウントでもログインできます。コードを提出するには登録が必要です。
- 「Problems」を開く:上部メニューから問題一覧(Problemset)を開きます。
- 難易度で絞り込む:難易度(Difficulty)でEasyに絞り込むと、初心者向けの問題が探しやすくなります。
- 問題を選ぶ:まずは定番の「Two Sum(No.1)」がおすすめです。多くの学習者が最初に解く有名な問題です。
- コードを書く:使用する言語を選び、エディタにコードを書きます。
- RunとSubmit:「Run」でサンプルのテストケースを試し、問題なければ「Submit」で提出します。提出すると全テストケースで判定され、正解なら完了です。
最初はEasyの問題から順番に解いていくと、形式に慣れやすく、毎日続けやすいのでおすすめです。
LeetCodeの難易度と問題の選び方
LeetCodeの問題は、難易度が3段階に分かれています。自分のレベルに合わせて選ぶことが、挫折せず続けるコツです。
- Easy(簡単):配列やループ、条件分岐など、基本的な内容。プログラミングや問題形式に慣れる段階。例:Two Sum、Palindrome Number。
- Medium(中級):二分探索、動的計画法、グラフなど、応用的なアルゴリズムが必要。効率(計算量)も意識する段階。例:Longest Substring Without Repeating Characters。
- Hard(難関):複雑なアルゴリズムや高度な発想が求められる。例:N-Queens、Trapping Rain Water。
初心者はEasyから始め、安定して解けるようになったらMediumへ進むのが王道です。いきなり難しい問題に挑むと挫折しやすいため、段階的にレベルを上げましょう。問題には他のユーザーの解答やヒントもあるので、行き詰まったら参考にできます。
LeetCodeで使える主なプログラミング言語
LeetCodeは多くのプログラミング言語に対応しており、同じ問題を好きな言語で解けます。主な対応言語は、Python、C++、Java、JavaScript、TypeScript、Go、C#、Ruby、Swift、Kotlin、Rustなどです。
言語選びの目安としては、初心者には構文がシンプルなPythonが扱いやすく、アルゴリズム学習に向いています。実行速度が重要な競技的な用途ではC++がよく使われます。普段の業務やキャリアで使う言語に合わせて選ぶのも良いでしょう。同じ問題を複数の言語で解いてみると、各言語の特徴を比較しながら理解を深められます。
LeetCodeの無料版と有料版(Premium)の違い
LeetCodeには無料プランと有料のLeetCode Premiumがあります。
無料版でも多くの問題に取り組めます。一般に大半の問題は無料で解けるとされ、基本的な学習や面接対策の土台づくりには無料版で十分です。コードの提出・自動判定、他ユーザーの一部の解答の閲覧、ディスカッションの利用などができます。
有料版(Premium)では、有料限定の問題、企業別の面接対策問題、より詳細な解答・解説、ジャッジ速度の優先などが利用できます。料金は月額・年額のサブスクリプションで、目安として月額およそ$35、年額およそ$159程度ですが、価格は変動するため最新は公式の料金ページで確認してください。
選び方の目安としては、まずは無料版で始め、基礎を固めるのがおすすめです。特定の企業の面接を本格的に目指す、企業別の問題や詳細解説を活用したい、という段階になったらPremiumを検討するとよいでしょう。
コーディング面接対策としての使い方
LeetCodeが最も活用されるのが、コーディング面接(コーディングテスト)の対策です。多くのテック企業では、面接でアルゴリズムやデータ構造の問題を解かせるため、LeetCodeでの練習がそのまま準備になります。
効果的なのは、公式の「Top Interview Questions」など面接頻出問題をまとめたセットを使うことです。よく出るのは、配列・文字列の操作、ソートや探索(二分探索)、動的計画法、深さ優先探索(DFS)や幅優先探索(BFS)といったグラフ探索などです。
面接本番では、正解を出すだけでなく考えた過程を声に出して説明すること(Think Aloud)が重視されます。練習のときから、「なぜそのアプローチを選んだか」を言葉にしながら解く習慣をつけると、本番でも落ち着いて対応できます。まずは動く解法を示し、そこから効率を改善していく進め方も有効です。
LeetCodeを効果的に活用するコツ
ただ問題を解くだけでなく、次のような点を意識すると学習効果が高まります。
- すぐに答えを見ない:まずは自力で考え、行き詰まったらヒントを見る。考えるプロセス自体が力になります。
- 解いた後に他の解法を見る:自分の解答と、他ユーザーのより効率的な解法を比較し、なぜそれが良いのかを理解します。
- パターンで覚える:問題を丸暗記するのではなく、「この種類の問題にはこのアプローチ」というパターンを意識すると、初見の問題に応用できます。
- 続けやすいペースで:毎日1問など、無理のない習慣にすると継続しやすくなります。
- 復習する:少し時間を空けて同じ問題を解き直すと、定着しているか確認できます。
なお、LeetCodeはアルゴリズムやコーディングテストの対策には強力ですが、Webアプリやデータベースなどの実務的な開発スキルが直接身につくわけではない点は理解しておきましょう。目的に合わせて、他の学習と組み合わせるのが効果的です。たとえば、日本語で競技プログラミングに取り組めるAtCoderと併用すると、異なるタイプの問題に触れられ、アルゴリズム力を多角的に鍛えられます。
まとめ
LeetCodeの要点を整理します。
- LeetCodeとは、アルゴリズム中心のコーディング問題集サイト。コーディング面接対策の定番
- 始め方は、アカウント登録 → Problems → 難易度で絞る → 問題を選ぶ → コードを書く → Run → Submit
- 難易度はEasy/Medium/Hardの3段階。初心者はEasyの「Two Sum」から
- Python・C++・Javaなど主要言語に対応。初心者はPythonが扱いやすい
- 大半の問題は無料。有料Premiumは企業別問題や詳細解説が使える(料金は目安・最新は公式で確認)
LeetCodeは、アルゴリズム力とコーディング面接の対策を同時に進められる定番ツールです。まずは無料でアカウントを作り、Easyの問題から1問解いてみることから始めてみましょう。
よくある質問(FAQ)
Q. LeetCodeは無料で使えますか?
A. 無料プランがあり、大半の問題は無料で解けます。コードの提出や自動判定も無料で利用できます。有料のPremiumは、企業別問題や詳細な解説などの追加機能が使えます。
Q. LeetCodeの料金(Premium)はいくらですか?
A. 目安として月額およそ$35、年額およそ$159程度ですが、価格は変動します。最新の金額は公式の料金ページで確認してください。
Q. 最初はどの問題から解けばいいですか?
A. 難易度Easyの「Two Sum(No.1)」が定番です。形式に慣れるため、Easyの問題から順に解くのがおすすめです。
Q. 問題文が英語でも大丈夫ですか?
A. 問題文は英語ですが、入出力の例が明確なので、翻訳機能などを使えば取り組めます。英語に慣れる練習にもなります。
Q. どの言語で解くのがよいですか?
A. 初心者には構文がシンプルなPythonが扱いやすくおすすめです。実行速度を重視するならC++もよく使われます。普段使う言語に合わせるのも良い選択です。