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

Day One

day1.livemd

Day One

Mix.install([
  {:kino, "~> 0.7.0"}
])

Section

input = Kino.Input.textarea("Input")
defmodule DayOne do
  def solve1(input) do
    input
    |> String.split("\n\n")
    |> Enum.map(&sum/1)
    |> Enum.max()
  end

  def solve2(input) do
    input
    |> String.split("\n\n")
    |> Enum.map(&sum/1)
    |> Enum.sort()
    |> Enum.reverse()
    |> Enum.take(3)
    |> Enum.sum()
  end

  defp sum(s) do
    s
    |> String.split("\n")
    |> Enum.map(&String.to_integer/1)
    |> Enum.sum()
  end
end

DayOne.solve2(Kino.Input.read(input))