challenge LL Golf Hole 3 - 13日の金曜日を数え上げる

今日から2013年12月31日までの、13日の金曜日とその総数を表示してください。

余力のあるものはこのプログラムを短くしてみたり、短くしてみたり、短くしてください。

※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/usr/bin/env ruby
require 'date'

from = DateTime.now
to = DateTime.parse("2013-12-31")

friday = (from..to).inject(0) do |friday, date|
    if date.mday == 13 and date.wday == 5 then
        puts date.strftime('%Y-%m-%d')
        friday + 1
    else
        friday
    end
end

puts friday

Posted feedbacks - Groovy

88B。出力はエラーで。
1
2
Calendar.instance.with{for(a=[];get(1)<2014;add(5,1))time=~/i\D+13/&&a<<time}
0&a+a.size

73B。もう終わったけど…

1
(new Date()..new Date(113,11,31)).any{if(it.date*it.day==65)println it}

あ、個数もか… 削って85B。出力は汚いです。

1
l=((new Date()..new Date(113,11,31)).findAll{it.date*it.day==65});print"${l.size}$l"

同じ方針で 67B。使いませんでしたが,"${l.size}" は "$l.size" でOKです。
1
2
a=(new Date()..new Date(114,0,0)).grep{it=~/i\D+13/}
print a+a.size

Index

Feed

Other

Link

Pathtraq

loading...