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__