1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def valid_triangle?(a, b, c)
a+b > c && a+c > b && b+c > a
end
if __FILE__ == $0
candidates = DATA.read.lines.each_slice(3).flat_map do |a, b, c|
a = a.scan(/\d+/).map(&:to_i)
b = b.scan(/\d+/).map(&:to_i)
c = c.scan(/\d+/).map(&:to_i)
a.zip(b).zip(c).map(&:flatten)
end
p candidates.select {|sides| valid_triangle?(*sides)}.size
end
require 'minitest'
# require 'minitest/autorun'
class TestDay3 < Minitest::Test
def test_day_3
refute valid_triangle?(5, 10, 25)
end
end
__END__