Day 1
Setup
Mix.install([
{:kino, "0.4.1"}
])
input = Kino.Input.textarea("Input")
input =
input
|> Kino.Input.read()
|> String.split("\n", trim: true)
|> Enum.map(&String.to_integer/1)
Part 1
defmodule Depth do
def counter([_ | []], count), do: count
def counter(input, count) do
[head | tail] = input
next = Enum.at(tail, 0)
cond do
head < next -> counter(tail, count + 1)
head >= next -> counter(tail, count)
end
end
end
Depth.counter(input, 0)
Part 2
input
|> Enum.chunk_every(3, 1, :discard)
|> Enum.map(&Enum.sum/1)
|> Depth.counter(0)