Powered by AppSignal & Oban Pro

Day 1

elixir/day01.livemd

Day 1

Setup

Mix.install([
  {:kino, "~> 0.4.1"}
])
input = Kino.Input.textarea("Type in the problem input:")

Part 1

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

Part 2

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