this repo has no description
at master 1.4 kB view raw
1# Day 03 2 3```elixir 4Mix.install([:kino_aoc]) 5``` 6 7## Parse 8 9<!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIzIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjUifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} --> 10 11```elixir 12{:ok, puzzle_input} = 13 KinoAOC.download_puzzle("2025", "3", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION")) 14``` 15 16```elixir 17batteries = 18 puzzle_input 19 |> String.split("\n", trim: true) 20 |> Enum.map(fn row -> 21 row 22 |> String.to_charlist() 23 |> Enum.map(& &1 - ?0) 24 end) 25``` 26 27```elixir 28defmodule Joltage do 29 def make_largest(list, n) do 30 to_remove = length(list) - n 31 Enum.reduce(1..to_remove, list, fn _, acc -> make_larger(acc) end) 32 end 33 34 def make_larger([_]), do: [] 35 def make_larger([a, b | rest]) when a < b, do: [b | rest] 36 def make_larger([b | rest]), do: [b | make_larger(rest)] 37end 38``` 39 40<!-- livebook:{"branch_parent_index":0} --> 41 42## Part 1 43 44```elixir 45Enum.sum_by(batteries, &Integer.undigits(Joltage.make_largest(&1, 2))) 46``` 47 48<!-- livebook:{"branch_parent_index":0} --> 49 50## Part 2 51 52```elixir 53Enum.sum_by(batteries, &Integer.undigits(Joltage.make_largest(&1, 12))) 54``` 55 56<!-- livebook:{"offset":1212,"stamp":{"token":"XCP.fo1ohV8LylIz8VmOAj7rlJ4Jn5KPGtiiFfsDRmp0pFSXCESjhfmQ11wOwEVmq9HM-Zn8fozQDsOoJbfgbM5LJPVE9c0pw2tYKbteOOGNqHI3PTIkuBnv8ZPW6oYwWAZy4A","version":2}} -->