22
day09.hs
Normal file
22
day09.hs
Normal file
@@ -0,0 +1,22 @@
|
||||
import Data.Either (rights)
|
||||
import Data.Map qualified as M
|
||||
import Data.Text qualified as T
|
||||
import Data.Text.Read qualified as TR
|
||||
import Lib (readFile', tRead)
|
||||
import Text.Parsec
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
input <- map (map tRead . T.words) . T.lines <$> readFile' "day09.in"
|
||||
|
||||
putStr "Q1: "
|
||||
print . sum $ map (sum . map last . extrap) input
|
||||
|
||||
putStr "Q2: "
|
||||
print . sum $ map (sum . map last . extrap . reverse) input
|
||||
|
||||
extrap :: [Int] -> [[Int]]
|
||||
extrap xs = take (length xs) $ iterate first' xs
|
||||
where
|
||||
first' :: [Int] -> [Int]
|
||||
first' xs = zipWith (-) (tail xs) xs
|
Reference in New Issue
Block a user