Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Advent 2022 - Day 1

day1.livemd

Advent 2022 - Day 1

Mix.install([
  {:kino, github: "livebook-dev/kino"}
])
:ok

Setup

input = Kino.Input.textarea("Please paste your input file:")
input =
  input
  |> Kino.Input.read()
  |> String.trim()
  |> String.split("\n\n")
  |> Enum.map(fn elf ->
    elf |> String.split("\n") |> Enum.map(&String.to_integer/1)
  end)
[[1000, 2000, 3000], [4000], [5000, 6000], [7000, 8000, 9000], [10000]]
elfs = input |> Enum.map(&Enum.sum/1) |> Enum.sort(&(&1 >= &2))
[24000, 11000, 10000, 6000, 4000]

Part 1

Enum.at(elfs, 0)
24000

Part 2

elfs |> Enum.take(3) |> Enum.sum()
45000