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が答えを教えずにヒントをくれるメンターになってくれます。
実際の学習の流れ
問題に取り組むときは、こんな感じでやってます:
- 問題をClaudeに共有して理解できているか確認
- 思いついたアプローチを説明してフィードバックをもらう
- 実装しながら詰まったら質問
- 完成したコードをレビューしてもらって改善点を探す
実際の体験イメージ
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