2023-08-27 22:30:00 +02:00
|
|
|
module Days.D01 where
|
|
|
|
|
|
2023-08-30 09:32:12 +02:00
|
|
|
import Common
|
2023-08-27 22:30:00 +02:00
|
|
|
import Data.List (sortBy)
|
2023-08-30 09:32:12 +02:00
|
|
|
import Parse
|
2023-08-27 22:30:00 +02:00
|
|
|
|
|
|
|
|
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)
|