Powered by AppSignal & Oban Pro

Day 2: I Was Told There Would Be No Math notebook

2015/day02.livemd

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()