Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

AoC 2022 - day 1

tradfursten-elixir/day_01.livemd

AoC 2022 - day 1

Mix.install([:kino])

Section

input = Kino.Input.textarea("input")
defmodule Day01 do
  def solve1(input) do
    input
    |> solve(1)
  end

  def solve2(input) do
    input
    |> solve(3)
  end

  defp solve(input, ammount) do
    input
    |> String.split(~r/\W/)
    |> Enum.chunk_by(fn e -> e != "" end)
    |> Enum.filter(fn e -> e != [""] end)
    |> Enum.map(fn arr -> arr |> Enum.map(&String.to_integer/1) end)
    |> Enum.map(fn arr -> Enum.sum(arr) end)
    |> Enum.sort(fn a, b -> a >= b end)
    |> Enum.take(ammount)
    |> Enum.sum()
  end
end
Kino.Input.read(input) |> Day01.solve1()
Kino.Input.read(input) |> Day01.solve2()