adventofcode/2021/day01.hs

17 lines
559 B
Haskell

module Main where
main :: IO ()
main = do
input <- getContents
let numbers = map (read :: String -> Integer) (lines input)
putStr "part 1: "
let zippedInts = zip numbers (tail numbers)
-- let count = filter (\(x,y) -> y > x) zippedInts
let count = filter (<0) (zipWith (-) numbers (tail numbers))
putStrLn $ show $ length count
putStr "part 2: "
let sums = zipWith3 (\x y z -> x + y + z) numbers (tail numbers) (tail (tail numbers))
putStrLn $ show $ length $ filter (<0) $ zipWith (-) sums (tail sums)
return ()