Day 01
Mix.install([
{:kino, "~> 0.7.0"}
])
example_input =
Kino.Input.textarea("example input:")
|> Kino.render()
real_input = Kino.Input.textarea("real input:")
Common
parse = fn input ->
input
|> Kino.Input.read()
|> String.split("\n")
|> Enum.chunk_while(
[],
fn
"", acc -> {:cont, Enum.sum(acc), []}
value, acc -> {:cont, [String.to_integer(value) | acc]}
end,
&{:cont, Enum.sum(&1), &1}
)
end
Part 1
real_input
|> parse.()
|> Enum.max()
Part 2
real_input
|> parse.()
|> Enum.sort(:desc)
|> Enum.take(3)
|> Enum.sum()