diff --git a/2024/day03/day03.hs b/2024/day03/day03.hs new file mode 100644 index 0000000..315eba6 --- /dev/null +++ b/2024/day03/day03.hs @@ -0,0 +1,14 @@ +{-# OPTIONS_GHC -Wno-x-partial #-} + +import Aoc +import Text.Regex.PCRE +import Data.List.Split ( splitOn ) + +part1 :: [String] -> Int +part1 = sum . map (sum . map (product . map read . tail) . (=~ "mul\\((\\d+),(\\d+)\\)")) + +part2 :: [String] -> Int +part2 = part1 . map (head . splitOn "don't()") . splitOn "do()" . concat + +main :: IO () +main = aocMain id part1 part2 \ No newline at end of file