データ構造シリーズ パート1
このステップを始める開始スタック、キュー、二分木、ハッシュテーブル、連結リスト。それぞれをPythonでゼロから実装し、実際に問題を解くのに使います。終えるころには、list、deque、dictが何をしてくれていて、そのコストがどれほどかがわかります。開始Pythonは、このパスを最も完全な形で進められる言語です。ビット演算を除くすべてのコースをPythonで教えていて、そのビット演算はC++のみのため、ステップのあとに載せています。スタック、ハッシュテーブル、ヒープ、AVL木を自分で実装するので、list、dict、deque、heapqはもう魔法ではなくなり、その理解を採点付きの面接問題で証明します。無料、ブラウザ完結、ほとんどのコースに修了証が付きます。
404 レッスン284 チャレンジ702 クイズの問題
各ステップは、すでにあるCoddyのコースの組み合わせで、どの「開始」ボタンもコースをPythonで開きます。Pythonで教えていないコースはビット演算の1つだけで、ステップのあとに載せています。
list、deque、dictが何をしてくれていて、そのコストがどれほどかがわかります。開始heapqは自分で書いたことのある二分ヒープになり、Pythonが用意してくれなかった平衡木も自分で作れるようになります。開始sorted()はマージソートと挿入ソートを組み合わせたTimsortで、このステップを終えれば、それがなぜ良い設計なのかを説明できます。開始&、|、^、<<、>>はPythonの演算子でもあるので、それでもすんなり読めます。開始heapq、つまりステップ2のヒープをライブラリにしたものです。開始実際のコードを書き、データベースをクエリし、ウェブサイトを構築し、AIプロンプトをマスターしましょう。インタラクティブなレッスンで現代の開発者に必要なすべてのスキルを網羅しています。
継続して進捗を見守りましょう!毎日のコーディング習慣を追跡し、フリーズ日で連続記録を守り、毎日参加することで報酬を獲得しましょう。
12 日連続
明日も戻ってきて連続記録を維持しましょう!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
ダブル・オア・ナッシング
7日中5日目
連続記録フリーズ
2 left
コーディングの旅を持ち歩こう!セットアップ不要、ダウンロード不要:開いてすぐにコーディング開始。iOS、Android、Webで4.9星評価で利用可能。
グローバルリーダーボードで競い、友達を招待して報酬を獲得し、お互いの成功を祝いましょう。プログラミングは友達と一緒の方が楽しい!
読む・聴く・自分を試す・AIに聞く・学んだことを調べる。どんな学び方にも対応したレッスンです。
変数は、後でプログラム内で参照できる値を格納する、名前のついた入れ物です。
Pythonでは、名前、イコール記号、格納したい値の順で書くことで作成します。
値は後から変えられます。再代入すると、名前は新しい値を指すようになります。
完了したすべてのコースで証明書を獲得しましょう。LinkedInプロフィールや履歴書に追加して、雇用主にプログラミングスキルをアピールしましょう。
list、dict、set、deque、heapqが最初から用意されています。その裏にある構造を自分で作ることで、list.pop(0)がなぜ遅いのか、dictの検索がなぜ平均で定数時間なのか、ヒープがソートに勝つのはどんなときかがわかります。どれも、それを使ったあとで面接官がまさに尋ねてくることです。はい。学ぶための言語としては、最良の選択と言ってよいでしょう。コードが短いので、読んでいるのは周りの構文ではなくアルゴリズムそのものです。知っておきたいトレードオフは2つあります。PythonはJavaやC++より実行が遅く、競技プログラミングの厳しい時間制限では響きますが、面接で問題になることはまれです。そして組み込み機能は、あなたが見積もれるようになろうとしているコストそのものを隠してしまいます。このパスでまずそれらを自分で作るのは、そのためです。
list(動的配列)、dictとset(ハッシュテーブル)、tuple、collections.deque(両端とも高速なキュー)、heapq(リスト上の二分最小ヒープ)、そしてcollections.Counterです。名前だけでなく、各操作のコストまで知っておきましょう。Pythonには連結リスト、木、トライ木、グラフが組み込まれていないので、それらはステップ1と2で自分で書きます。listの上に作ったキューは、pop(0)のたびに残りの要素がすべて1つずつずれるので、そのたびにコストを払います。deque.popleft()なら払いません。各構造を一度実装することで、考えなくても正しいものを選べるほどコストが身につきます。ほとんどの問題では十分です。時間制限が厳しい場合はC++のほうが安全な選択で、だからこそ競技プログラマーの大半がC++を使います。また多くのオンラインジャッジにはPyPyがあり、同じPythonコードをはるかに速く実行できます。面接では、コードの実行速度よりも書く速さのほうがずっと重要で、そこではPythonが勝ちます。
RecursionErrorを起こすことがあります。上限はsys.setrecursionlimitで引き上げられますが、より良い習慣であり、面接官も見たがるのは、再帰をループと明示的なスタックに置き換える方法を知っていることです。そのスタックこそ、ステップ1で作る構造です。関数、ループ、リスト、辞書に慣れていて、できればクラスも使えることが望ましいです。ここではどの構造もクラスとして書くからです。まだそこまで届いていなければ、CoddyのPythonコースが、まず無料でそこまで連れて行ってくれます。このパスは、そのコースが終わるところから始まります。
はい。すべてのステップを修了すると、データ構造とアルゴリズムパス全体の無料修了証を1枚取得できます。途中で修了した各コースが記載され、各コースの修了証にリンクしているので、記載されたスキルを誰でも確認できます。LinkedInのプロフィールに追加できます。Coddyが発行する修了証であり、認定された資格ではありません。