Added writeup links
[advent-of-code-21.git] / advent01 / Main.hs
1 -- Writeup at https://work.njae.me.uk/2021/12/01/advent-of-code-2021-day-1/
2
3 import Data.List
4
5 main :: IO ()
6 main =
7 do numStrs <- readFile "data/advent01.txt"
8 let nums = map (read @Int) $ lines numStrs
9 print $ part1 nums
10 print $ part2 nums
11
12 part1 :: [Int] -> Int
13 part1 = countIncreasing
14
15 part2 :: [Int] -> Int
16 part2 nums = countIncreasing $ map sum windows
17 where windows = filter ((== 3) . length) $ map (take 3) $ tails nums
18
19 countIncreasing :: [Int] -> Int
20 countIncreasing nums = length $ filter (uncurry (>)) $ zip (tail nums) nums