Coding Interview Prep
DSA、SQL、競技プログラミングのコーディング面接対策
コースツールを探索
AIを活用したツールと機能で学習をパワーアップ
学び方
90コース
Coding Interview Prepラーニングパスのすべてのコース
SQL基礎の面接問題
面接開始から最初の5分で候補者を見極める、SQL基礎の頻出問題を扱います。SQLとは何か、クエリがどのように実行されるか、面接官が求める用語を身につけます。
DSAのためのPython入門
Pythonの基礎を復習し、面接中は問題解決に集中できるようにします。本コースでは、アルゴリズム問題で頻繁に登場する組み込みデータ型、内包表記、ユーティリティ関数を扱います。最後には、面接の時間制限下でも読みやすい、クリーンでPythonらしいコードを書けるようになります。
アリーナへようこそ:ジャッジと判定
オンラインジャッジに最初の解答を提出し、その判定を読み取れます
高速I/O:得点を失わずに入力を読む
制限時間超過を避けられる速さで、コンテストの入力を読み書きできます
SELECTと列式の基礎
列の射影、別名、計算式、DISTINCTに関する面接演習です。初学者がつまずきやすい、微妙なスコープ規則も扱います。
時間計算量と空間計算量
コードを1行も書く前に、あらゆるアルゴリズムの効率を分析できるようになります。本コースでは、ループ、再帰、データ構造の操作を題材に、視覚的な直感と例題を交えながらBig-O、Big-Theta、Big-Omega記法を学びます。計算量分析を身につけることは、面接官が評価する最も…
配列とツーポインター法
配列はコーディング面接で最もよく使われるデータ構造です。本コースでは、まずPythonでの配列操作の基本を学び、その後、数多くの定番問題で二重ループをなくせるツーポインターパターンを深く掘り下げます。pair-sum、three-sum、container-with-most-…
WHERE句による絞り込みの落とし穴
演算子の優先順位、BETWEENの境界、INとORの違い、パターンマッチングなど、絞り込みに関する定番の面接の落とし穴を扱います。一見正しそうなフィルターが、なぜ誤った行を返すのかを学びます。
文字列とパターンマッチング
文字列操作の問題は、ほぼすべてのコーディング面接で登場します。本コースでは、Pythonの豊富な文字列API、部分文字列検索に使うスライディングウィンドウ法、アナグラムや順列の検出を扱います。また、単純なO(n²)の総当たり法で十分な場合と、より効率的なアルゴリズムを使うべき場…
ORDER BY、LIMIT、Top-Nの問題
安定した並べ替え、複数キーによるソート、方言をまたいで上位N行を取得する方法など、並べ替えとページネーションに関する面接問題を扱います。
ソートアルゴリズム
実装レベルでソートを理解すると、面接でトレードオフを自信を持って説明するための語彙が身につきます。本コースでは、Pythonでバブルソート、挿入ソート、マージソート、クイックソートをゼロから実装し、それぞれの計算量を分析し、どのような実務場面に適しているかを示します。
集計関数の面接演習
COUNT、SUM、AVG、MIN、MAXと、面接で問われるNULLの扱いを学びます。COUNT(*)とCOUNT(column)の違いは、必ずと言ってよいほど出題されるポイントです。
INNER JOIN入門
面接官が最初に尋ねるJOINです。INNER JOINがどのように行を照合し、重複によって行数を増やし、ON述語をどこに置くのかを正確に理解します。
二分探索の極意
二分探索の力は、教科書的な定義から想像する以上に強力です。本コースでは基本的な実装に加え、回転した配列、サイズ不明のリスト、データ構造ではなく可能な答えの範囲を探索する答えの二分探索まで扱います。
Two Pointers:配列を走査する
Two Pointers法でペアや部分配列の問題を解決できます
LEFT、RIGHT、FULL OUTER JOIN
一致しない行の保持、欠落レコードの発見、面接官が好んで出題するアンチJOINパターンなど、外部結合の面接問題を扱います。
連結リストをゼロから実装
連結リストを通じて、Pythonの組み込み機能に頼らずポインターを操作し、メモリについて考える力を身につけます。本コースではNodeクラスから単方向連結リストを構築し、反転、循環検出、ソート済みリストのマージという面接の定番問題に取り組みます。
スタックとキューの実践
スタックとキューは、DFS、BFS、式の解析、Undoシステムを支える基本構造です。本コースではPythonのリストとcollections.dequeを使って両方を実装し、正しい括弧、日々の気温、スタックを使ったキューの実装など、面接の定番問題を解きます。
CROSS JOIN、SELF JOIN、JOINパターン
候補者を驚かせるJOINを扱います。直積、テーブル自身との結合、問題に本当に必要なJOINの見分け方を身につけます。
ソートと比較関数
カスタムキーでソートし、順序を利用して問題を簡単にできます
答えを二分探索する
ソート済みデータを検索し、数値の答えの範囲を二分探索できます
GROUP BYとHAVINGの面接の落とし穴
GROUP BYは、面接で初級者と中級者の差が表れる分野です。GROUP BYの規則、HAVINGとWHEREの違い、非集計列エラーを学びます。
ハッシュマップと集合
ハッシュマップはO(n)の線形スキャンをO(1)の検索に変え、多くの最適な面接解答を支える強力な手法です。このコースでは、衝突処理、負荷係数、Pythonのdict内部実装を扱い、ハッシュマップをtwo-sum、group-anagrams、longest-consecutiv…
NULL処理の面接問題
SQL面接で誤答の最大の原因となるNULLを扱います。3値論理、NULLセーフな比較、COALESCEを身につけます。
ハッシュ:Set、Map、カウンター
ハッシュ構造でO(1)の検索、カウント、重複除去を実現できます
再帰とコールスタック
再帰は、木の走査、バックトラッキング、分割統治の基盤です。このコースでは、再帰呼び出しのたびにコールスタックがどのように増減するのかを明らかにし、正しい再帰関数を書くための信頼できる3ステップの枠組みを確立します。さらに、選択した問題を明示的なスタックを使う反復解法に変換します。
サブクエリ徹底解説
面接官が提示するスカラー、行、テーブルのサブクエリを扱います。それぞれを記述できる場所と、サブクエリが最もすっきりした解答になる場面を理解します。
木:走査とパス
二分木は、LeetCodeのmediumおよびhard問題の4分の1以上に登場します。このコースでは、TreeNodeクラスを作成し、4種類すべての走査順序を再帰・反復の両方で実装します。さらに、最大深さ、直径、最小共通祖先など、パスに関する問題を解決します。
シミュレーション:ルールを正確にコード化する
複雑な問題のルールを、正しい手順どおりのシミュレーションに変換できます
二分探索木
BSTは、ソート済み配列の順序性と、連結リストの動的な挿入を組み合わせたデータ構造です。このコースでは、BSTの挿入、検索、削除操作を扱い、BSTが正しいことを検証します。さらに、kth-smallestや範囲検索など、ソートされた中順走査の性質を活用する問題を解決します。
相関サブクエリ
外側の各行に対して1回ずつ実行されるサブクエリです。相関サブクエリの見分け方、記述方法、書き換え方は、中級者向け面接で必須のスキルです。
共通テーブル式(CTE)
読みやすく再利用しやすいクエリロジックを実現するWITH句を学びます。面接では、ネストしたサブクエリを整理されたCTEにリファクタリングする力が求められます。
ヒープと優先度付きキュー
ヒープは、ストリーミング中央値、top-k-elements、Dijkstra's algorithmを支えています。このコースではヒープの性質を説明し、配列を使ってmin-heapをゼロから実装します。さらに、Pythonのheapqモジュールを使ってtop-k-freque…
グラフ:BFSとDFS
グラフ問題は、システム設計やアルゴリズムの面接で頻繁に登場します。このコースでは、隣接リストと隣接行列でグラフを表現し、訪問済み集合を使ったBFSとDFSによってconnected-components、number-of-islands、word-ladder、clone-g…
動的計画法の基礎
動的計画法は多くの候補者にとって難しく感じられますが、実際には「重複する部分問題」と「最適部分構造」という2つの認識しやすい要素に集約できます。このコースではDPの考え方を身につけ、トップダウンのメモ化とボトムアップのテーブル化を学びます。さらに、Fibonacci、climb…
Stack、Queue、Deque
適切な線形データ構造を選び、典型的なパターンに活用できます
ウィンドウ関数:ROW_NUMBER、RANK、DENSE_RANK
面接で最も頻繁に問われる高度なSQL分野、順位付け用ウィンドウ関数を学びます。3つの順位関数が同順位に対してどのような違いを生むのかを理解します。
DPパターン:1次元問題
面接で扱われるDP問題の多くは、部分問題の答えを格納した1次元配列に帰着できます。このコースでは、線形走査、各ステップでの選択、スライディングウィンドウDPという主要な1次元DPパターンを見極め、house robber、maximum product subarray、wor…
ウィンドウ関数:LAG、LEAD、NTILE
行の比較やデータの層別化に使う、オフセット関数とバケット化関数を扱います。期間ごとの変化は、アナリスト面接で必ずと言ってよいほど問われます。
Sliding Windowを極める
窓を広げたり縮めたりして、部分配列や部分文字列の問題を解決できます
区間:マージ、走査、スケジューリング
区間をソートして走査し、統合、重なりのカウント、スケジューリングを行えます
累計と移動平均
累積計算やローリング計算に使うウィンドウフレーム句を学びます。ROWSとRANGEによるフレーム指定の違いは、中級者向け面接で問われる重要なポイントです。
DPパターン:2次元グリッド問題
2次元DPテーブルは、比較する2つの系列や、グリッド上の移動のように、状態が2つの独立したインデックスに依存する問題をモデル化します。このコースでは、unique paths、minimum path sum、longest common subsequence、edit di…
グループごとのTop-Nと重複排除
ウィンドウ関数で効率よく解決できる、面接頻出の2つの問題を扱います。カテゴリごとの上位項目の取得と、重複行の削除です。
バックトラッキング:探索と列挙
バックトラッキングは、候補となる解を体系的にすべて探索し、制約に違反した時点で分岐を打ち切ります。このコースでは、汎用的なバックトラッキングのテンプレートを学び、subsets、permutations、combination sum、N-queens、Sudoku solve…
N番目に高い給与と順位付けの難問
すべての候補者が出会う面接問題、2番目に高い給与、続いてN番目に高い給与を扱います。面接官が加えるさまざまな境界ケースにも対応します。
貪欲アルゴリズム
貪欲アルゴリズムは、各ステップで局所的に最適な選択を行い、適用できる場合には全体最適な結果を導きます。このコースでは、貪欲法が正しいのはどのような場合かという直感を養い、交換論法によって正しさを証明します。さらに、区間スケジューリング、jump game、タスクスケジューリング…
集合演算:UNION、INTERSECT、EXCEPT
結果セットを正しく結合する方法を学びます。UNIONとUNION ALL、列の互換性ルール、データセットの比較に集合演算を使う方法を扱います。
分割統治
分割統治は、問題を独立した部分問題に分割し、それぞれを再帰的に解いてから結果を統合します。このコースでは、merge sortにとどまらず、この手法を転倒数のカウント、最近点対、majority element(Boyer-Moore)、Karatsuba乗算アルゴリズムに応用…
ビット操作のパワーアップ
集合、マスク、定数時間の操作にビット演算のテクニックを活用できます
高度なDP:区間と回文
区間DPは、範囲の両端点で部分問題を定義する強力なパターンです。回文分割、行列連鎖乗算、burst balloonsなどで最適解を導けます。このコースでは、汎用的な区間DPのテーブル構築順序を学び、4つの典型問題を最初から最後まで解決します。
ギャップと島の問題
連続するまとまりと、その間にあるギャップを見つける高度なパターン認識の問題群を扱います。SQL面接でシニアレベルの力を示すテーマです。
連続日数と継続分析
連続ログイン日数、連勝記録、LeetCode形式の3行連続問題など、連続記録とランレングスに関する問題を扱います。
高度なDP:ナップサックの派生
ナップサック問題群は、面接で最も頻繁に登場するDPの典型パターンの1つです。このコースでは、0/1ナップサック、unbounded knapsack、partition-equal-subset-sum、target-sumを扱います。それぞれの派生形で漸化式と状態空間をどのよ…
最短経路:Dijkstraとその仲間
適切なアルゴリズムで重み付きグラフの最短経路を計算できます
最短経路アルゴリズム
最短経路の考え方は、ネットワークルーティング、word-ladder、最安フライト問題などに登場します。このコースでは、min-heapを使ったDijkstra's algorithm、負の重みを扱うBellman-Ford、全点対の距離を求めるFloyd-Warshallを実…
ピボットとアンピボットのテクニック
ロング形式とワイド形式の間でデータを変換します。条件付き集計によるピボットと、その逆変換であるアンピボットは、レポート関連の面接でよく問われます。
トポロジカルソートとSCC
トポロジカルソートは、DAGの各辺が前方を向くように頂点を並べる手法であり、コーススケジューリング、ビルドシステム、依存関係の解決に不可欠です。このコースでは、Kahn's BFS-based algorithmとDFSベースの後順トポロジカルソートを実装し、強連結成分を求める…
日付、時刻、文字列の面接問題
面接で問われる日付の計算、切り捨て、文字列操作を扱い、方言による関数名の違いにも対応します。
ナップサックと2次元DP
ナップサック型の2次元DPで、資源に制約のある選択をモデル化できます
コホート分析とリテンション分析のSQL
プロダクト分析の面接で問われるクエリを扱います。コホートの作成、リテンション曲線の計算、自己結合とウィンドウ関数によるアプローチを学びます。
トライと文字列アルゴリズム
トライ(プレフィックス木)は、ハッシュマップでは実現しにくい形で、オートコンプリート、スペルチェック、IPルーティングを解決します。このコースでは、insertとsearchをサポートするTrieNodeクラスを作成し、プレフィックス検索とワイルドカード照合に拡張します。さらに…
ファネル分析とA/Bテスト分析のSQL
データアナリスト面接で頻繁に使われる、イベントファネルのコンバージョン分析と実験分析のクエリを扱います。
Union-Findと素集合
Union-Find(Disjoint Set Union)は、ほぼ定数時間で連結性を問い合わせられ、動的なグループ化を扱う問題に最も簡潔な解決策を提供します。このコースでは、ランクによる併合とパス圧縮を実装し、DSUをnumber-of-connected-component…
クエリ最適化とEXPLAIN
実行計画を読み解き、クエリが遅い理由を説明する方法を学びます。これは技術面接でシニア人材との差が表れるポイントです。
ビット操作のテクニック
ビット操作では、整数の2進表現を活用することで、追加の領域を使わずに一部の問題をO(1)またはO(n)で解決できます。このコースではAND、OR、XOR、シフト、ビットマスクを扱い、single-number、counting-bits、power-of-two、missing…
インデックス設計の問題
面接で問われるインデックス設計を扱います。どの列にインデックスを付けるか、複合インデックスの順序、カバリングインデックス、インデックスが逆効果になる場面を学びます。
単調スタックとスライディングウィンドウの最大値
単調スタックとデックは、左から右へ要素を処理しながらソート済みの不変条件を維持します。これにより、通常ならO(n²)の二重ループが必要な問題をO(n)で解決できます。このコースでは、daily temperatures、largest rectangle in histogra…
コーディング面接のためのシステム設計
シニア向けの面接では、ホワイトボードにスケーラブルなアーキテクチャを描く30〜45分のシステム設計面接が行われることがあります。このコースでは、要件の明確化、規模の見積もり、データモデルとAPIの設計、ストレージエンジンの選択、整合性・可用性・レイテンシをめぐるトレードオフの検…
トランザクション、ACID、分離レベル
ACID特性、4つの分離レベル、それぞれが防ぐアノマリなど、並行性に関する面接問題を扱います。
FAANGパターンと模擬面接
この総仕上げコースでは、カリキュラム全体のパターンを体系的な問題解決手順にまとめます。問題文を読んで最初の60秒で適用すべきパターンを見極める方法、時間制限下での練習方法、計算量やエッジケースに関する追加質問に実際の面接官のように対応する方法を学びます。
終盤戦:ゲーム理論、MITM、コンテストの技術
コンテストのプレッシャー下で、ゲーム理論、Meet-in-the-Middle、デバッグ手順を活用できます
スキーマ設計、正規化、模擬面接
データベースモデリングと、本番形式の模擬面接問題をまとめた総仕上げコースです。正規化、スター・スキーマ、エンドツーエンドの問題解決を扱います。
よくある質問
Coding Interview Prepコースは無料ですか?
はい。Coding Interview Prepコースは無料で始められ、インタラクティブレッスンをすべて無料で完了できます。オプションのPRO登録で、高度なAIツールと共有可能な認定資格がアンロックされます。
INTERVIEWを学ぶのに事前経験は必要ですか?
いいえ。コースは基礎から始まり、より高度なトピックへと進むので、INTERVIEWの事前経験がなくても始められます。
CoddyKitでINTERVIEWをどのように学びますか?
実践しながら学びます。短いインタラクティブレッスンは、わかりやすい説明と、リアルタイムで実行される実践的なコード演習が組み合わさっており、24時間対応のAIチューターがわからないときにいつでもサポートします。
Coding Interview Prepを完了すると認定資格がもらえますか?
はい。PRO学習者は試験を受けて、Coding Interview Prepコースの完了を証明する共有可能な認定資格を取得できます(認証コード付き)。
スマートフォンでINTERVIEWを学べますか?
はい。CoddyKitはウェブとネイティブiOS・Androidアプリで利用でき、どのデバイスでもINTERVIEWを学習でき、進捗がすべてのデバイスで同期されます。