Powered by AppSignal & Oban Pro

Day 1: Calorie Counting

day-1-calorie-counting.livemd

Day 1: Calorie Counting

Mix.install([
  {:kino, "~> 0.7.0"}
])

Puzzle Input

input = Kino.Input.textarea("Input")

Part 1

Kino.Input.read(input)
|> String.split("\n\n")
|> Enum.map(fn x ->
  x
  |> String.split("\n")
  |> Enum.map(&String.to_integer/1)
  |> Enum.sum()
end)
|> Enum.sort(&(&1 >= &2))
|> List.first()

Part 2

Kino.Input.read(input)
|> String.split("\n\n")
|> Enum.map(fn x ->
  x
  |> String.split("\n")
  |> Enum.map(&String.to_integer/1)
  |> Enum.sum()
end)
|> Enum.sort(&(&1 >= &2))
|> (fn [first, second, third | _] -> first + second + third end).()