Advent of Code 2025
at main 502 B view raw
1module Day3 where 2 3import Data.Char 4 5parse :: String -> [[Int]] 6parse input = map (map digitToInt) (lines input) 7 8maxJoltages :: [Int] -> [Int] 9maxJoltages bank = 10 let update states k = zipWith max states (0 : [10*s + k | s <- states]) 11 in foldl update (repeat 0) bank 12 13part1 :: String -> String 14part1 input = 15 show $ 16 sum $ 17 map (\bank -> (maxJoltages bank) !! 2) $ 18 parse input 19 20part2 :: String -> String 21part2 input = 22 show $ 23 sum $ 24 map (\bank -> (maxJoltages bank) !! 12) $ 25 parse input