Day 03
Mix.install([:kino_aoc])
Section
{:ok, puzzle_input} =
KinoAOC.download_puzzle("2025", "3", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION"))
batteries =
puzzle_input
|> String.split("\n", trim: true)
|> Enum.map(fn row ->
row
|> String.to_charlist()
|> Enum.map(& &1 - ?0)
end)
defmodule Joltage do
def make_largest(list, n) do
to_remove = length(list) - n
Enum.reduce(1..to_remove, list, fn _, acc -> make_larger(acc) end)
end
def make_larger([_]), do: []
def make_larger([a, b | rest]) when a < b, do: [b | rest]
def make_larger([b | rest]), do: [b | make_larger(rest)]
end
Part 1
Enum.sum_by(batteries, &Integer.undigits(Joltage.make_largest(&1, 2)))
Part 2
Enum.sum_by(batteries, &Integer.undigits(Joltage.make_largest(&1, 12)))