# AOC 2024 Day 3 ## Section ```elixir input = File.read!("/data/input.txt") ``` ```elixir Regex.scan( ~r/mul\((\d+),(\d+)\)/, input ) |> Stream.map(fn [_, a, b] -> String.to_integer(a) * String.to_integer(b) end) |> Enum.sum() ``` ```elixir for instruction <- Regex.scan( ~r/(mul\((\d+),(\d+)\)|don't\(\)|do\(\))/, input ), reduce: {true, 0} do {enabled?, acc} -> case {enabled?, instruction} do {false, ["mul" <> _ | _]} -> {false, acc} {true, ["mul" <> _, _, a, b]} -> {true, acc + String.to_integer(a) * String.to_integer(b)} {_, ["don" <> _ | _]} -> {false, acc} {_, ["do()" | _]} -> {true, acc} end end ```