Advent of Code 2022 - Day 6
Mix.install([:kino, {:kino_aoc, git: "https://github.com/ljgago/kino_aoc"}])
Input
test_input = "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg"
{:ok, puzzle_input} = KinoAOC.download_puzzle("2022", "6", System.fetch_env!("LB_AOC_SESSION"))
input_field =
Kino.Input.select("input", [
{test_input, "test_input"},
{puzzle_input, "puzzle_input"}
])
Parsing & Prep
solve = fn input_field, chars ->
input_field
|> Kino.Input.read()
|> String.to_charlist()
|> Enum.chunk_every(chars, 1, :discard)
|> Enum.with_index(chars)
|> Enum.find(fn {seq, _} ->
seq
|> Enum.uniq()
|> Enum.count() == chars
end)
|> elem(1)
end
Part 1
solve.(input_field, 4)
Part 2
solve.(input_field, 14)