Powered by AppSignal & Oban Pro

AoC 2022 Day 1

2022/day01.livemd

AoC 2022 Day 1

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

Section

input_field = Kino.Input.textarea("Puzzle input")
input = Kino.Input.read(input_field)

Part 1

elves =
  input
  |> String.split("\n\n")
  |> Enum.map(fn elf ->
    elf
    |> String.split("\n")
    |> Enum.map(&String.to_integer/1)
  end)

totals =
  elves
  |> Enum.map(&Enum.sum/1)

Enum.max(totals)

Part 2

Enum.sort(totals)
|> Enum.reverse()
|> Enum.take(3)
|> Enum.sum()