スズメの本棚

自分の知識の定着のために本や実装したことをまとめていきます.

Pythonで木構造の問題を解いてみた

今回は木構造の問題を実際にpythonを使って解いてみました.木構造の基本的な使い方の問題,木構造の仕組みを利用した問題の二つを解いているので最近木に関して学び始めたという方,競技プログラミングで木構造を扱いたい方に向けています.

Pythonで木構造を実装してみた ~二分木と根付き木~

今回は競技プログラミングでよく見る木構造をpythonで実装してみました.木構造は探索アルゴリズムの基本となっていたりするので一度実装してみて作れるようになっておいた方がいいと感じました.今回の記事では木構造の仕組みから実際のコードと解説まで載…

Pythonで最小コストソート(Silly Sort)解いてみた

今回はソートをしながらその移動コストを最小限にするという最小コストソート(Silly Sort)を扱いました.問題の解き方を考えるのに苦労しましたが,実装はそこまで難しくなく競技プログラミングが好きな方にぜひ解いてもらいたい問題になっています.

pythonでバケットソートの実装してみた

今回はソートアルゴリズムの中でもメモリを確保することで要素をソートするバケットソートに関して扱いました.実装に関してはバケットソートの中でも計数ソートを用いて実装しています.メモリ数の確保に注意がいりますがpythonだとバケットソートは簡単に…

pythonでクイックソートを実装してみた

ソートアルゴリズムの中でも最速と言われているクイックソートをpythonで実装しています.ソートアルゴリズムの処理に必要なピボットやパーティションの考え方・コード・図も用意しているのでクイックソートの仕組みをちゃんと理解したい人に向けています.

pythonでマージソートを実装してみた

今回はソートアルゴリズムの中でも今まで学んできたものよりも高速なアルゴリズムであるマージソートに関してpythonで実装していきました.これまで学んできた再帰関数の考え方や全体の処理の流れを抑えればそれほど苦戦せずに実装できると思います.また,マ…

再帰関数で作るフラクタル図形 ~コッホ曲線~

今回はフラクタル図形(コッホ曲線)を扱った問題から再帰関数に関して解説してきました.一度は皆さんみたことがあるであろう図形を扱った問題なので解いていて楽しかったです.今度,pythonでフラクタル図形を描くことにも挑戦してみたいと思います.

組み合わせの列挙で学ぶ再帰関数

今回は競技プログラミングでよく扱われている全探索のプログラムを再帰関数を用いて解いていきました.再帰関数は実際に一回自分で作成してみないと動作が思い浮かばなかったりすると思うのでこれを機に一緒に作成してみましょう!

実装して学ぶ基本探索アルゴリズム ~二分探索の応用~

探索アルゴリズムを用いる必要がある実際の競技プログラミングの問題を二分探索を用いてどのように答えにたどり着くのか実際に実装しながらその解説までを載せています.探索アルゴリズムを実際に使った問題を解きたい方に向けています.

実装して学ぶ基本探索アルゴリズム ~線形探索と二分探索~

今回は基本的な探索アルゴリズムに関してその解説から実装までを扱いました.競技プログラミングでは配列の探索が頻出です.基本アルゴリズムでは解けないものも多いですが,二分探索などはよく扱われている問題なのでこれを機に一緒に実装できるようにしま…

実装して学ぶ基本データ構造~Stackの応用編~

前回記事で学んだStackの知識を応用した問題を実際に解いていきます.問題の解説・動作説明・実際の実装までを行なっています.競技プログラミングに慣れたい方一緒に解いてみませんか?

実装して学ぶ基本データ構造~StackとQueue編~

基本的データ構造のStackとQueueに関して実際にそのデータ構造を扱った逆ポーランド法やラウンドロビンスケジューリングを用いた演習問題を解きながら仕組みに関して理解できるように書いています.

シェルソートの実装

ソートアルゴリズムの中でも基本であるシェルソートに関して解説・実装しています.また,シェルソートの間隔の決め方などに関しても解説しています.

基本ソートアルゴリズム3つの実装

アルゴリズムを学ぶ上で,また,競技プログラミングを始める上で覚えておきたい基本ソートアルゴリズムである挿入ソート・バブルソート・選択ソートのPythonによる実装と解説

計算量の考え方

競技プログラミングを始める上で,考えなければいけないオーダーに関して簡単に紹介しています.計算量がどのように増えていくのか,計算量がなぜ重要なのかの理解を深めるために活用してください

Pythonで実装するアルゴリズムとデータ構造

競技プログラミングを勝つために必要な知識を身につけるための本である「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」を実際に実装しながら解説しています.このページでは対応している記事とを結びつけるためのtopページ的扱いで使用し…