Files
aoc/2024/day03/part2.rb
2025-12-01 11:25:06 +01:00

25 lines
496 B
Ruby

if File.exists?("input.txt")
file = File.open("input.txt")
file_data = file.read
file.close
else
file_data = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))"
end
#puts file_data
sane_data = file_data.gsub(/don\'t\(\).*?do\(\)/m, "").scan(/mul\(\d+,\d+\)/)
#puts sane_data.inspect
numbers = sane_data.map do |item|
item.scan(/\d+/).map(&:to_i)
end
#puts numbers.inspect
result = 0
for mul in numbers do
result = result + mul[0] * mul[1]
end
puts result