コンテンツにスキップ

プログラミング学習計画:1年でLeetCode Medium攻略

📁 docs/it-learning/artifact/programming_study_plan.md

Issue: #224 更新: 2026-03-22 目標:1年後にLeetCode Mediumを安定して解けるレベル 条件:1日30分 / Python or Java / C未経験


言語選定:Python を強く推奨

観点 Python Java C
学習コスト ★★★(低い) ★★(中程度) ★(高い)
LeetCode相性 ◎(解法サンプルが最多)
記述量 少ない ボイラープレートが多い ポインタ・メモリ管理が必要
アルゴリズムへの集中 しやすい やや難しい 難しい
将来性 AI/ML/データ分析にも使える Web/Androidに強い 組み込み/OS開発向け

結論:Pythonで始めるのがベスト。

  • 構文がシンプルで「言語の学習」でなく「アルゴリズムの学習」に集中できる
  • LeetCodeの解説・解答はPythonで書かれているものが最も多い
  • list, dict, set等の組み込み型が豊富でアルゴリズム実装に向いている
  • CやJavaは「アルゴリズムが安定してから2言語目として学ぶ」で十分

1年間ロードマップ(1日30分 × 5日/週を想定)

Phase 1:Python基礎を固める(1〜2ヶ月)

目標: コードを「読んで書ける」状態にする

テーマ やること
1〜2週 変数・型・演算 整数・文字列・ブール型。paizaのDランク問題を解く
3〜4週 条件分岐・ループ if/for/while。paizaのCランク問題を解く
5〜6週 関数・リスト def, list操作(append/pop/sort)。paizaのCランク
7〜8週 辞書・集合・文字列 dict, set, str操作。LeetCodeのEasyを試し始める

Paizaで挫折しないコツ: - Dランク→Cランクと段階を踏む(Bランクは後回し) - 解けなかったら30分で諦めて解答を読む。写経して理解する - 「解けること」より「なぜそう書くか理解すること」が優先


Phase 2:データ構造の基礎(3〜4ヶ月)

目標: LeetCode Easyを自力で解けるようにする

テーマ 学ぶ内容
3ヶ月目 配列・ハッシュマップ Two Sum系問題。O(n)とO(n²)の違いを体感する
3ヶ月目 スタック・キュー collections.deque。括弧の対応チェック等
4ヶ月目 文字列操作 スライシング、逆順、回文チェック
4ヶ月目 二分探索入門 ソート済み配列への探索。bisectモジュール

LeetCodeの進め方: - タグで「Array」「HashMap」等を絞って Easy だけ解く - 解けなくても20分で解答を見てOK。重要なのは「パターンを覚えること」 - 解いた問題を手元のノートやMDにメモする(後で復習用)


Phase 3:アルゴリズム基礎(5〜7ヶ月)

目標: 定番アルゴリズムのパターンを身につける

テーマ 学ぶ内容
5ヶ月目 再帰・分割統治 フィボナッチ→メモ化。再帰の「木」をイメージできるようになる
5〜6ヶ月目 DFS・BFS グラフ・木の探索。島の数(Number of Islands)等
6ヶ月目 スライディングウィンドウ 部分配列の最大値等。Medium頻出パターン
7ヶ月目 二ポインタ法 ソート済み配列の問題。メモリ効率O(1)の解法

Phase 4:LeetCode Medium 本番(8〜12ヶ月)

目標: Mediumを自力で解けるようにする

テーマ 学ぶ内容
8〜9ヶ月目 動的計画法(DP)入門 コイン問題・ナップサック。DPの「状態定義」に慣れる
9〜10ヶ月目 グラフ・Union-Find 連結成分の数え方。Medium頻出
10〜11ヶ月目 ヒープ・優先度付きキュー heapq。TopK問題
11〜12ヶ月目 総復習・苦手強化 解いた問題を再度解く。間違えたパターンを重点的に

週次スケジュール例(1日30分)

曜日 内容
新しい概念のインプット(記事・解説動画・本)
新しい問題を1問解く
昨日解いた問題の復習・別解を調べる
新しい問題を1問解く
週の振り返り。解けなかった問題を再チャレンジ
土日 休み or 気が向いたら1問

ポイント:「毎日解く」より「週5日・インプットとアウトプットを交互に」の方が続く。


推奨リソース

学習教材

リソース 種類 フェーズ 備考
Paiza 問題集 Phase 1 D→Cランクのみ。Bは後回し
Python公式チュートリアル ドキュメント Phase 1 無料・日本語
CS50P(Harvard) 動画講座 Phase 1〜2 英語だが字幕あり。無料
NeetCode 動画解説+問題集 Phase 2〜4 LeetCode解説の最定番。英語
アルゴリズム図鑑 書籍 Phase 2〜3 図解でイメージをつかむのに最適

LeetCode 問題リスト

リスト 問題数 おすすめ時期
NeetCode 150 150問 Phase 2〜4の主軸
LeetCode「Top Interview 150」 150問 Phase 3〜4の補強
LeetCode Daily(毎日1問公開) 毎日 Phase 4(習慣化)

よくある挫折パターンと対策

挫折パターン 原因 対策
問題が全然解けない 難易度が高すぎる 必ずEasyから。Dランクから始める
解けても次に活かせない 解きっぱなし 解いた問題をMDにメモ(パターン名+ポイント)
途中でやる気が消える 成長を感じにくい 月次で「解いた問題数」を記録する
毎日続けられない ハードルが高い 「1日1問」ではなく「週5日」にする。できない日を織り込む

マイルストーン

時期 チェックポイント
2ヶ月後 Paiza CランクをTLE(時間超過)なしで安定して解ける
4ヶ月後 LeetCode EasyのArray/HashMap系を自力で解ける(正答率60%以上)
7ヶ月後 LeetCode EasyをDFS/BFS含めて安定して解ける
12ヶ月後 LeetCode MediumのArray/DP/Graph系を自力で解ける(正答率50%以上)