Day 2: I Was Told There Would Be No Math notebook
Mix.install([:kino])
Input
input = Kino.Input.textarea("Input")
sizes =
input
|> Kino.Input.read()
|> String.split(["\n", "x"])
|> Enum.map(&String.to_integer/1)
|> Enum.chunk_every(3)
Part 1
sizes
|> Enum.map(fn [l, w, h] ->
Enum.min([l * w, w * h, h * l]) + 2 * l * w + 2 * w * h + 2 * h * l
end)
|> Enum.sum()
Part 2
sizes
|> Enum.map(fn size ->
size
|> Enum.sort()
|> Enum.take(2)
|> Enum.sum()
|> Kernel.*(2)
|> Kernel.+(Enum.product(size))
end)
|> Enum.sum()