Advent of Code 2022 - Day 1
Mix.install([:kino, {:kino_aoc, git: "https://github.com/ljgago/kino_aoc"}])
Input
test_input =
"""
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
"""
|> String.trim()
{:ok, puzzle_input} = KinoAOC.download_puzzle("2022", "1", System.fetch_env!("LB_AOC_SESSION"))
input_field =
Kino.Input.select("input", [
{test_input, "test_input"},
{puzzle_input, "puzzle_input"}
])
Parsing
ren_calories =
input_field
|> Kino.Input.read()
|> String.split("\n")
|> Enum.chunk_while(
0,
fn
"", sum -> {:cont, sum, 0}
nr, sum -> {:cont, sum + String.to_integer(nr)}
end,
&{:cont, &1, nil}
)
Part 1
Enum.max(ren_calories)
Part 2
ren_calories |> Enum.sort(:desc) |> Enum.take(3) |> Enum.sum()