Powered by AppSignal & Oban Pro

Day 01

books/aoc/2021/01.livemd

Day 01

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

Input

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

Part 1

input
|> Kino.Input.read()
|> String.split("\n", trim: true)
|> Enum.map(&String.to_integer/1)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [left, right] -> right > left end)

Stream Based

input
|> Kino.Input.read()
|> String.splitter("\n", trim: true)
|> Stream.map(&String.to_integer/1)
|> Stream.chunk_every(2, 1, :discard)
|> Enum.count(fn [left, right] -> right > left end)

Part 2

input
|> Kino.Input.read()
|> String.split("\n", trim: true)
|> Enum.map(&String.to_integer/1)
|> Enum.chunk_every(3, 1, :discard)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [left, right] -> Enum.sum(right) > Enum.sum(left) end)