Powered by AppSignal & Oban Pro

Advent of code 2022 - Day 1

2022/livebooks/day-01.livemd

Advent of code 2022 - Day 1

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

Input

input = Kino.Input.textarea("Please paste your input file:")

Puzzle 1

input
|> Kino.Input.read()
|> String.split("\n")
|> Enum.chunk_by(&("" == &1))
|> Enum.filter(fn [head | _tail] -> head != "" end)
|> Enum.map(fn list -> Enum.map(list, &String.to_integer(&1)) |> Enum.sum() end)
|> Enum.max()

Puzzle 2

input
|> Kino.Input.read()
|> String.split("\n")
|> Enum.chunk_by(&("" == &1))
|> Enum.filter(fn [head | _tail] -> head != "" end)
|> Enum.map(fn list -> Enum.map(list, &String.to_integer(&1)) |> Enum.sum() end)
|> Enum.sort(:desc)
|> Enum.take(3)
|> Enum.sum()