コンピュータサイエンス アルゴリズム編 - 階乗(再帰)
積んでから、帰り道で掛ける
実行を進めて、factorial(4) の箱が底まで積まれてから値が降りてくるところを見てください。
基底を n <= 1 と書くのは 0 のためだけではありません。うっかり負の数が来ても底に着かせるための保険です。
1 / 1
ソート、探索、再帰などのアルゴリズムに加え、OS (プロセス、メモリ、ファイルシステム)、ネットワーク (TCP/IP、HTTP、DNS、CDN)、データベースまで、Web エンジニアに必要な CS の基礎を一本で学べる総合コースです。エンジニア転職を目指す学習者や、CS 出身でない現役エンジニアを対象としています。約 34 時間 (1 日 30 分 × 68 日) で 135 レッスンを修了でき、修了後は技術選定やシステム設計の議論に自信を持って参加できるようになります。
レッスン
135件
所要時間
約15時間
ランク
中級
学習環境
ブラウザ完結
アルゴリズムとデータ構造を理解し、効率的なプログラムが書けるようになります。
ソート、探索、再帰などのアルゴリズムに加え、OS (プロセス、メモリ、ファイルシステム)、ネットワーク (TCP/IP、HTTP、DNS、CDN)、データベースまで、Web エンジニアに必要な CS の基礎を一本で学べる総合コースです。エンジニア転職を目指す学習者や、CS 出身でない現役エンジニアを対象としています。約 34 時間 (1 日 30 分 × 68 日) で 135 レッスンを修了でき、修了後は技術選定やシステム設計の議論に自信を持って参加できるようになります。
配列、リスト、スタック、キューを実装できる
木構造とグラフの基本を理解できる
ソート・探索アルゴリズムを実装できる
計算量(Big-O)を分析できる
コーディング面接の基本問題を解けるようになる
ブラウザ完結(インストール不要)
必要ツール: ブラウザ内エディタ, JavaScript/Python
テキストでの解説
84
レッスン
コーディングの問題
44
レッスン
クイズ問題
7
レッスン
ゆめさくコード編集部
プログラミング学習をもっと身近に。初心者から実務レベルまで、わかりやすいコンテンツをお届けします。
ゆめさくエンジニア / 現役ソフトウェアエンジニア。Ruby on Rails・Nuxt.js・Next.js・CakePHPなどの実務の開発をベースに、学習コンテンツを作成しています。
レッスンの最初に、図と短い言葉で学ぶ内容をつかみます。
コンピュータサイエンス アルゴリズム編 - 階乗(再帰)
実行を進めて、factorial(4) の箱が底まで積まれてから値が降りてくるところを見てください。
基底を n <= 1 と書くのは 0 のためだけではありません。うっかり負の数が来ても底に着かせるための保険です。
1 / 1
コンピュータサイエンス アルゴリズム編 - フィボナッチ数(再帰)
n を 1 ずつ上げて、fib(k) ごとの呼び出し回数がどこから急に伸びるか見てください。
基底で return 1 と書くと fib(0) が 1 になり、数列全体が 1 つずれます。ここだけは return n です。
1 / 1
コンピュータサイエンス アルゴリズム編 - 累乗(再帰)
exp を動かして、上下 2 列のマスの数がどこから離れていくか見てください。
引数が 2 つに増えても、減らすのは exp だけで base は据え置きです。動かす引数を 1 つに決めるのが引数が増えたときのコツです。
1 / 1
コンピュータサイエンス アルゴリズム編 - 配列の合計(再帰)
配列の長さを変えて、切るたびに作られる残りの配列が何マスぶん増えるか見てください。
この切り方は合計のためだけの小技ではありません。マージソートも木の走査も、同じ「先頭と残り」の形で書かれています。
1 / 1
動かしながら、仕組みや変化を目で確かめられます。
技術面接対策をしたい人
を目指す人
パフォーマンスを意識したコードを書きたい人
を目指す人
CSの基礎を体系的に学び直したい人
を目指す人
先にこちらを通しておくと、つまずきにくくなります
このコースを終えたあとに進むと、無理なく続けられます
同時に進めると、理解が早くなる組み合わせです