quiz

『ある金額になるコインの組み合わせ』 に挑戦

お題:ある金額になるコインの組み合わせ - No Programming, No Life Javaで「ある金額になるコインの組み合わせ」 - terazzoの日記 を Groovy に翻訳しようといろいろ調べていたら Tree iterator が簡単そうだったので実装してみた*1。 参考 General design…

『FizzBuzz(Nパターン)』 に挑戦

お題:FizzBuzz(Nパターン) - No Programming, No Life fizz buzz without trial division · GitHub を Groovy に翻訳してみた。 @Grab(group='com.google.guava', module='guava', version='r09') import com.google.common.base.Function import static co…

『サマーインターン2011問題』 に挑戦

サマーインターン2011問題 | Preferred Research 思いついた方法が 解かれてブックマークされている方 と違ったので。半分より多く現れるなら文字のバイト位置をカウントして半分より大きいバイト位置だけ拾った文字を出力すればよいのではないかと思った。 …

0〜1000に含まれる0をカウントする

0〜1000に含まれる0をカウントする という問題。 参考 練習 - krystal: プログラミング超初心者(文系) - Rubyist - オリジナル 0〜1000に含まれる0をカウントする - http://rubikitch.com/に移転しました - Ruby で '0' in 0~1000 - ellaneous - golf で 他…

Saruman's Army

『プログラミングコンテストチャレンジブック』 から N 個の点が直線上にあります。点 i の位置は Xi です。N 個のうちいくつかの点を選び、それらの点に印を付けます。N 個のすべての点について、距離が R 以内の場所に印を付けられた点がなければなりませ…

Best Cow Line

『プログラミングコンテストチャレンジブック』 から N 文字の文字列 S が与えられ、N 文字の文字列 T を作ります。はじめは T は長さ 0 の文字列で、次のいずれかの操作が行えます。 S の先端を 1 文字削除し、T の末尾に追加する S の末尾を 1 文字削除し…

文字列で+を表示する

Groovyのtrampolineを使ってピラミッドのお題を解いてみた - No Programming, No Life が楽しそうなので私も エロと風俗情報満載 どう抜く? から引用する。 pooq 氏からの お題 与えられた文字列で+のかたちを表示するプログラムをかいてください。 サンプ…

『自然数対の整列列挙』に挑戦

お題: 2011-04-30 http://d.hatena.ne.jp/route150/20110428/1303994639 似ているのだが f が不定である。id:route150 氏から 遅延評価(主にfoldrとmerge)は相性がいい と教えてもらったのに自力で解いたらこうなった。 import Control.Monad import Data.L…

『直角三角形の面積...』に挑戦

お題:http://d.hatena.ne.jp/route150/20110428/1303994639 直角三角形の斜辺でない2辺をa、bとする。a、bは整数で「1 (追記) 但し、列挙する数は無限個とする(現実的には無理だが)。 最初に一覧にして眺めてみる。 [1, 1] [1, 2] [1, 3] [1, 4] [2, 2] [1…

『今流行のお題を出してみた』に Groovy で挑戦

お題:はてなブログに移行しました 問題をみて「グラフが強連結であること」ってところまでは調べたんだが 強連結であることを判定するアルゴリズムはあっても強連結なグラフを作るものがみあたらない。 何回かグラフ関連のアルゴリズムをあさっていたら気が…

時間帯重複チェック(応用編)その3

お題:時間帯重複チェック(応用編) - No Programming, No Life Haskell で解答されていたのでそれを Groovy で書いてみる。 http://d.hatena.ne.jp/route150/20110401/1301661345 Control.Applicative モジュールの知識がないので読めない部分がある。 ghc…

時間帯重複チェック(応用編)その2

お題:時間帯重複チェック(応用編) - No Programming, No Life をもう一度解く。 フラグ方式には及ばないが計算量を改善した方法に辿り着いた*1。フラグ方式は bucket sort のように限定条件に気づいているので気づいていない方式では太刀打ちできない。ま…

時間帯重複チェック(応用編)

お題:時間帯重複チェック(応用編) - No Programming, No Life を解く。*1 調べてみたら 区間木 - Wikipedia というものがあるみたいだが、手頃な感じではないので Groovy で力づくな方法で解くことにする。 class Time implements Comparable<Time> { int h, m </time>…