Powered by AppSignal & Oban Pro

Day 1

2022/day01.livemd

Day 1

Mix.install([:kino])

Input

input = Kino.Input.textarea("")
sorted_calories_amounts =
  input
  |> Kino.Input.read()
  |> String.split("\n\n", trim: true)
  |> Enum.map(fn calories_block ->
    calories_block |> String.split("\n") |> Enum.map(&String.to_integer/1) |> Enum.sum()
  end)
  |> Enum.sort()

Part 1

List.last(sorted_calories_amounts)

Part 2

sorted_calories_amounts |> Enum.take(-3) |> Enum.sum()