アルゴリズムの勉強: うるう年(leap year)[AOJ 0093][Ruby]

今回は、『AOJ 0093 - うるう年(leap year)』についての記事です。

プログラムならうるう年を求めるのもこんなに簡単なのかとちょっと感激しますw、よかったらぜひチャレンジしてみてください。


Ruby コードサンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def get_leap_years(from, to)
res = []
from.upto(to) do |i|
if i%400 == 0
res << i
elsif i%100 == 0
next
elsif i%4 == 0
res << i
end
end
res
end
is_first_line = true
while gets do
a, b = $_.split(' ').map(&:to_i)
break if a == 0 && b == 0
if is_first_line
is_first_line = false
else
puts ''
end
res = get_leap_years(a, b)
if res.count == 0
puts 'NA'
else
puts res
end
end

Aizu Online Judgeのサンプルソース

当面はAOJを解きながら、アルゴリズムの再勉強をしていくつもりです。Ruby/Python/C++でのAOJの回答は下のリポジトリに保存しておきます。もしツッコミとかあればぜひ^^

morizyun/aoj-ruby-python - GitHub

最近解いたAOJの問題

AOJタグのついた最近解いた問題一覧