Day 3: Mull It Over

Megathread guidelines

  • Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
  • You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL

FAQ

  • aurele@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    17 days ago

    Elixir

    defmodule AdventOfCode.Solution.Year2024.Day03 do
      def part1(input) do
        Regex.scan(~r/mul\((?<l>\d+),(?<r>\d+)\)/, input, capture: ["l", "r"])
        |> Stream.map(fn l -> Enum.reduce(l, 1, &(&2 * String.to_integer(&1))) end)
        |> Enum.sum()
      end
    
      def part2(input) do
        input |> String.replace(~r/don't\(\).*(do\(\)|$)/Us, "") |> part1
      end
    end