[Haskell/2023/09] Add solution

This commit is contained in:
Felix Bargfeldt 2023-12-09 11:16:14 +01:00
parent a647c55505
commit a48351e477
Signed by: Defelo
GPG key ID: 2A05272471204DD3
2 changed files with 23 additions and 2 deletions

21
Haskell/2023/09.hs Normal file
View file

@ -0,0 +1,21 @@
import Lib
type Input = [[Int]]
main :: IO ()
main = aoc 2023 9 setup solve1 solve2 ["1"]
solve1 :: Input -> Int
solve1 = sum . map solve
solve2 :: Input -> Int
solve2 = sum . map (solve . reverse)
solve :: [Int] -> Int
solve = sum . map last . takeWhile (any (/= 0)) . iterate step
step :: [Int] -> [Int]
step = zipWith (-) =<< tail
setup :: String -> Input
setup = map (map read . words) . lines

File diff suppressed because one or more lines are too long