AdventOfCode-2019/day8.cr

20 lines
373 B
Crystal

require "advent"
input = input(2019, 8).chomp
layers = input.chars.each_slice(25*6).to_a
layer = layers.min_by(&.count('0'))
puts(layer.count('2') * layer.count('1'))
message = layers.reduce do |l1, l2|
l1.zip_with(l2) do |a1, a2|
next (a1 == '2') ? a2 : a1
end
end
6.times do |i|
25.times do |j|
print(message[25*i+j] == '1' ? '#' : ' ')
end
puts
end