diff --git a/Day11/puzzle1.hs b/Day11/puzzle1.hs new file mode 100644 index 0000000..3d17146 --- /dev/null +++ b/Day11/puzzle1.hs @@ -0,0 +1,15 @@ +blinkStone :: Int -> [Int] +blinkStone 0 = [1] +blinkStone s = let ss = show s + nDigit = length ss + in if even nDigit + then map read [take (nDigit `div` 2) ss, drop (nDigit `div` 2) ss] + else [s * 2024] + +blink :: Int -> [Int] -> [Int] +blink 0 xs = xs +blink n xs = blink (n - 1) $ concatMap blinkStone xs + +main = do + contents <- words <$> readFile "day11.txt" + print . length . blink 25 $ map read contents