道順を数えるどう書く?org 2番煎じ
Re:道順を数える - No Programming, No Lifeを見て、僕もこの問題を解いてみた。
・・・で、早速挫折。文字列ではあるけれど、図形の解析、難しいですね。
問題文に「パターン数が分かれば、データ構造は何でもいいよ」とあるので木構造でといてみました。
def x = 3 def y = 4 def LEFT = 0 def DOWN = 1 def list = [] (x+y).times{ list << [LEFT, DOWN] } def all = list.combinations().unique().findAll{ it.count(LEFT) == x } def part = all.findAll{ !(it[0..1].count(LEFT) == 1 && it[2] == DOWN) }.findAll{ !(it[0..3].count(LEFT) == 1 && it[4] == LEFT) }.findAll{ !(it[0..3].count(LEFT) == 2 && it[4] == LEFT) } println all.size() println part.size()
これでいいのだ。
ディスカッション
コメント一覧
まだ、コメントがありません