21 lines
446 B
Haskell
21 lines
446 B
Haskell
module Days.D01 where
|
|
|
|
import Lib (Day, Parser, definitive, parsecDay)
|
|
import Parse (number, someLines)
|
|
|
|
import Data.List (sortBy)
|
|
|
|
type Intermediate = [[Int]]
|
|
|
|
parser :: Parser Intermediate
|
|
parser = someLines (someLines number)
|
|
|
|
part1 :: Intermediate -> Int
|
|
part1 = maximum . map sum
|
|
|
|
part2 :: Intermediate -> Int
|
|
part2 = sum . take 3 . sortBy (flip compare) . map sum
|
|
|
|
day :: Day
|
|
day = parsecDay parser (definitive . part1, definitive . part2)
|