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

Advent 2021 - Day 1

day1.livemd

Advent 2021 - Day 1

Setup

Mix.install([
  {:kino, github: "livebook-dev/kino"}
])
input = Kino.Input.textarea("Please paste your input file:")
input =
  input
  |> Kino.Input.read()
  |> String.trim()
  |> String.split("\n")
  |> Enum.map(&String.to_integer/1)

Part 1

input
|> Enum.chunk_every(2, 1, :discard)
|> Enum.map(fn [x, y] -> y - x end)
|> Enum.count(fn x -> x > 0 end)

Part 2

input
|> Enum.chunk_every(3, 1, :discard)
|> Enum.map(fn list -> Enum.sum(list) end)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.map(fn [x, y] -> y - x end)
|> Enum.count(fn x -> x > 0 end)