Day 6
Setup
Mix.install([:kino])
input =
Kino.Input.text("Paste input here",
default: "mjqjpqmgbljsphdztnvjfqwrcgsmlb"
)
datastream = Kino.Input.read(input)
Part 1
marker_length = 4
datastream
|> String.splitter("", trim: true)
|> Stream.chunk_every(marker_length, 1)
|> Enum.find_index(&(MapSet.size(MapSet.new(&1)) === marker_length))
|> Kernel.+(marker_length)
Part 2
marker_length = 14
datastream
|> String.splitter("", trim: true)
|> Stream.chunk_every(marker_length, 1)
|> Enum.find_index(&(MapSet.size(MapSet.new(&1)) === marker_length))
|> Kernel.+(marker_length)