シフトを自動で組むプログラムをPythonで書いた

アルバイトのシフトを組むのって大変らしいですね。 調べてみると「ナーススケジューリング問題はNP困難」などと出てきます。 ただ、頭のなかで考えていた問題は労働者ごとの職能に差がないものだったので、ナーススケジューリング問題よりは簡単かもしれな…

paizaのプログラミングで彼女を作るやつを全クリアした

paiza.jp 彼女欲しいって言ってたら友達にオヌヌメされたので解いた。全体的に制約が超ゆるいので何でも通っちゃう。 一応水着も手に入れたけど、僕がほしいのは生身の彼女なんだ! 「めがね」ゲットチャレンジ! 本当にやるだけ。制約が小さいので全部見れ…

普段競技プログラミングばっかりやってる僕がSiv3Dを触ってみた話

この記事はSiv3D Advent Calendar 2015 - Qiitaの14日目の記事です。 普段はプログラミングといえば競技プログラミングというレベルで競技プログラミング大好きな僕のSiv3D体験記です。 Siv3Dとは Siv3D は C++ で楽しく簡単にゲームやメディアアートを作れ…

SymPyで辛い計算をちょっと辛い計算にする

この記事はPython Advent Calendar 2015 - Adventarの7日目の記事です。 SymPyというシンボル計算ライブラリを使ったことがありますか? 最近、卒論のお手伝いをしてもらっているライブラリです。 日本語の情報が少なくて困ったので自分用にという意味も込め…

Brainfuckの処理を書いてみた

Brainfuckとは Brainfuck - Wikipedia 命令が8個(><+-.,[])しかないプログラミング言語 def brainfuck(s): a = [0] * 10 ptr = 0 i = 0 l = len(s) while i < l: if s[i] == '>': ptr += 1 elif s[i] == '<': ptr -= 1 elif s[i] == '+': a[ptr] += 1 elif s…

スペース区切りの文字列をリストに格納する方法の比較

競技プログラミングの入力では、一行にいくつかの数字がスペース区切りで並んでいるケースをよくみる。 例えば、No.16 累乗の加算 - yukicoderの Python3でこれらを一つのリストに格納したい時、一番早い方法はなんだろうか。 map関数を使ってからlistにする…

川渡りパズルを解く

川渡りパズル(男が狼、ヤギ、キャベツを持って川を渡るが船には1つしか積めないみたいなやつ)をPython3で解いてみました。