最近、LeetCodeでアルゴリズムの勉強をしています。
問題を解いた後に
- この問題って結局どのアルゴリズムなの?
- 時間計算量・空間計算量は?
- 他にどんな解法があるんだろう?
と毎回調べることが多く、少し手間に感じていました。
最近はブラウザ 「Ask Gemini」 のようなブラウザエージェントが使えるようになってきたので、それを活用できるスキルを作ってみました。
*AIに丸投げすると効果がありません!!!!模写してみたり、1度フルスクラッチで書いてみると記憶に定着するのでオススメです!!!
作ったもの
LeetCode Solution Analyzer (/leetcode)
LeetCodeの問題ページを開いた状態で実行すると、
- アルゴリズムの考え方
- 時間計算量・空間計算量
- Pythonでの最適解
- 他のアプローチとの比較
をまとめて説明してくれます。
実際の画面
skillを使ったときの学習画面
スキル
# LeetCode Solution Analyzer (`/leetcode`)
LeetCodeの各問題ページを解析し、アルゴリズムの直感的理解・計算量・Pythonでの最適解・代替アプローチを日本語で分かりやすく解説するAIアシスタント用スキル定義です。
---
## 概要
LeetCodeの個別問題ページ(`leetcode.com/problems/*`)を開いた状態で使用します。
---
## 基本情報
| 項目 | 詳細 |
| :--- | :--- |
| **コマンド** | `/leetcode` |
| **対象ページ** | ユーザーが現在閲覧しているページ |
| **出力言語** | 日本語 |
| **対象言語/スタック** | Python 3 |
---
## Gemini / AI アシスタント用プロンプト
\```markdown
現在のLeetCode問題ページを分析し、以下の手順に従って包括的な説明を提供してください:
### 1. 基本概念と戦略
- この問題を解決するために使用される根本的なアルゴリズムの概念(動的計画法、2ポインタ、スライディングウィンドウなど)を特定してください。
- 最適なアプローチの背後にある直感を明確に説明してください。
### 2. 計算量分析
- Big O表記を使用して、時間計算量と空間計算量を詳細に説明してください。
- このアプローチに伴うトレードオフについて議論してください。
### 3. ベストプラクティス
- ロジックを説明する簡潔なコメントを添えた、クリーンで慣習的なPythonの最適解コードを提供してください。
### 4. 代替アプローチ
- 自然言語による説明のみを使用して、一般的な代替戦略やパターン(例:全探索 vs 最適化)を説明し、それらが選定したベストプラクティスよりも劣っている理由を明らかにしてください。
---
### 制約事項および言語ルール
- **出力言語**: コードのキーワードを除き、すべて日本語で出力すること。
\```
このスキルで見られる内容
AIには次のような内容を整理してもらいます。
1. 基本概念と戦略
この問題で使われるアルゴリズムのパターンを説明します。
例えば、
- 2ポインタ
- DFS / BFS
- 動的計画法
などです。
「なぜそのアルゴリズムになるのか」という考え方まで説明してくれます。
2. 計算量分析
- 時間計算量
- 空間計算量
をBig Oで説明します。
また、そのアルゴリズムを選択する理由やトレードオフについても確認できます。
3. ベストプラクティス
Pythonでの最適解を生成します。
できるだけ読みやすいコードになるようにしているので、自分の回答との差分も確認しやすいです。
4. 代替アプローチ
全探索など他の解法についても説明します。
最適解だけでなく、「他の方法ではなぜ遅くなるのか」も理解しやすくなります。
使ってみた感想
まだ使い始めたばかりですが、
問題を解いた後に
- 解法の整理
- アルゴリズムの復習
- Pythonでの書き方の確認
が一度にできるので、復習用として結構便利だと感じています。
LeetCodeは解くだけではなく、「なぜその解法になるのか」を理解することも大事なので、その補助として使っています。
おわりに
今後もLeetCodeだけでなく、GitHubや技術ドキュメントなど、普段の開発や学習で使えるブラウザAIエージェント用スキルを少しずつ公開していく予定です。
もし改善案や「こんな機能があると便利」といったアイデアがあれば、Issue や Pull Request をいただけると嬉しいです!
GitHub Repository
今回紹介したスキル
コントリビュートも歓迎しています!

