Javascript での、両端キュー (deque) の実装

Share

大した理由があるわけでもないのだけど、最近たまにJavascriptを触っている。いや、もちろん仕事などとは全く関係ない。趣味の話である。

その時に気づいたのだけど、どうやらJavascriptには、標準でキューが用意されていないらしい。正確には、Array.shift() などを用いればそれっぽい動作はできるのだが、内部動作的には配列を動かしているだけで、計算量も\(O(N)\)となり、きちんと実装されたキューとは言えないだろう。

“Javascript での、両端キュー (deque) の実装” の続きを読む
Share

Python3でエラトステネスの篩を用いて素数列を作成する

Share

最近LINEの新卒採用試験ズバリ問題解説~アルゴリズム問題編~という記事が少し話題になっていた(というか競技プログラミング勢から突っ込まれしまい、後日お詫びが掲載された)のを見かけたので、そこで取り扱われていたエラトステネスの篩(ふるい)について、記事を書いてみようと思う。

“Python3でエラトステネスの篩を用いて素数列を作成する” の続きを読む
Share

Python3での内包表記あれこれ

Share

内包表記(Comprehension)とは、あるリスト(などのイテラブル)から別のリスト(あるいはセットや辞書)を作成するような処理を行うときに、それを簡便に書くことができる記法だ。ちなみに、内包表記で書くと、普通に書き下すより動作も速くなることが多い。

今回の記事は、内包表記って何?という人から、内包表記の存在は知っているけど書き方がイマイチよく分からない……という人向けとなっている。

“Python3での内包表記あれこれ” の続きを読む
Share

競技プログラミングにおける、標準入力の取得例 in Python3

Share

問題を解く以前に、入力をどう取り扱ったらいいかイマイチ良く分からない、あるいは入力を取得するコードを書くところで悩んで時間を食ってしまう……という人向けの記事。

慣れれば誰でも簡単に書けるようになるので、一応それらしいパターンをまとめつつ、どうしてこういう書き方になるのか、ちょっとした解説をつけてみようと思う。

“競技プログラミングにおける、標準入力の取得例 in Python3” の続きを読む
Share

Union_Find (Disjoint Set Union) クラス in Python3

Share

とりあえずそこそこ形になったので、コードを。一応実コンテストでも使用してるので、そんなに間違いはないはず……。

2020/11/09 適当な拡張クラスを追加。グリッドのつながりをUnion Findで扱いたい時などに使えるかもしれない。

2021/11/28 コードのリンク切れ修正。見に来てくれてたけどコードが見えてなかった人、ごめんなさい。

“Union_Find (Disjoint Set Union) クラス in Python3” の続きを読む
Share