[Haskell/2023/09] Add solution
This commit is contained in:
parent
a647c55505
commit
a48351e477
2 changed files with 23 additions and 2 deletions
21
Haskell/2023/09.hs
Normal file
21
Haskell/2023/09.hs
Normal 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
Loading…
Add table
Add a link
Reference in a new issue