Powered by AppSignal & Oban Pro

Day 6

2022/day06.livemd

Day 6

Mix.install([:kino])

Input

input = Kino.Input.textarea("")

Pre-work

defmodule Markers do
  def find(data, size) do
    if data |> Enum.take(size) |> MapSet.new() |> MapSet.size() == size do
      size
    else
      1 + find(tl(data), size)
    end
  end
end

data =
  input
  |> Kino.Input.read()
  |> String.trim()
  |> String.to_charlist()

Part 1

Markers.find(data, 4)

Part 2

Markers.find(data, 14)