🕌

ClaudeをメンターにしてLeetCode学習している話

に公開

はじめに

LeetCodeを始めてから、「答えをすぐ見てしまう」という悪い癖に悩んでいました。そんな時にClaudeをメンターとして使ってみたら、思った以上に良い学習体験ができたので共有します。

やっていること

Claudeプロジェクトを作成

私はClaudeのプロジェクト機能を使っています。プロジェクト名は「LeetCode学習メンター」にして、このPromptをproject instructionsに設定しています:

I need your help to work through LeetCode problems step by step, using Python3. Don't give me the answers directly; you're my mentor, help me solve the problems.

Reply in Japanese

※ 日本語での回答を希望する場合は「Reply in Japanese」を追加してください。

これだけで、Claudeが答えを教えずにヒントをくれるメンターになってくれます。

実際の学習の流れ

問題に取り組むときは、こんな感じでやってます:

  1. 問題をClaudeに共有して理解できているか確認
  2. 思いついたアプローチを説明してフィードバックをもらう
  3. 実装しながら詰まったら質問
  4. 完成したコードをレビューしてもらって改善点を探す

実際の体験イメージ

Greatest Common Divisor of Strings問題での例

メンタリングセッションのイメージ:

: 問題文を貼って「問題が理解できません」

Claude: 段階的に説明してくれて、例を使って"文字列の割り切り"を教えてくれた

: 「短い文字列を見つけて、長い文字串でも成り立つかチェックすればいい?」

Claude: 「GCDを使ったアプローチを考えてみて」と言いながら、例で「str2 = "ABAB"の場合、可能なx: "A", "AB", "ABAB"」と説明

: 「"A"がなんで"ABAB"を割り切れるんですか?」

Claude: 「間違いました!"A"では"AAAA"になってしまいますね。ご指摘ありがとうございます」

こういう風に、Claudeも間違いを認めて修正してくれるのが良いところ。

: GCDのアプローチを理解して、コードを書いた:

def gcdOfStrings(self, str1: str, str2: str) -> str:
    if str1 + str2 != str2 + str1:
        return ""
    gcd_length = gcd(len1, len2)  # ←ここでgcd()を直接使用
    return str1[:gcd_length]

Claude: 「良いコードですが、gcdをimportしてませんよね?」

: 「なんでLeetCodeでエラーにならないんだろう...」

試してみたら、LeetCodeではgcdが最初から使えることが分かった。意外な発見でした。

良かった点

答えを見ずに済む

  • ヒントだけもらえるので、自分で考える習慣がついた

24時間いつでも質問できる

  • 夜中に勉強していても、詰まったらすぐ相談できる

段階的に理解できる

  • いきなり最適解を見るのではなく、自分のペースで改善していける

コードレビューがもらえる

  • 動くコードができても、「もっと良い書き方は?」と聞ける

こんな質問をよくしています

「この部分のロジックが理解できません」
「なぜこのテストケースで失敗するんでしょうか?」
「計算量をもっと改善できますか?」
「この解法以外のアプローチはありますか?」

まとめ

ClaudeをメンターにしてLeetCode学習を続けてみて、思った以上に効果的でした。

特に「答えを見てしまう」癖がある人には、一度試してみてもらいたいです。

ただのAIチャットではなく、プロジェクト機能を使うことで、継続的な学習パートナーとして活用できています。

Discussion