Day 1 Part 2

This commit is contained in:
Nathan McCarty 2022-12-01 11:06:04 -05:00
parent 34d5494402
commit 3afb01ca78
Signed by: thatonelutenist
GPG Key ID: D70DA3DD4D1E9F96
1 changed files with 15 additions and 3 deletions

View File

@ -2,18 +2,30 @@ import System.File.ReadWrite
import Data.String import Data.String
import Data.List1 import Data.List1
parseInput : String -> List1 (List Int)
parseInput input =
let inputLines = lines input
grouped = split (== "") inputLines
in map (map cast) grouped
part1 : String -> IO () part1 : String -> IO ()
part1 input = part1 input =
let inputLines = lines input let parsed = parseInput input
grouped = split (== "") inputLines
parsed = map (map cast) grouped
totals = map (foldr (+) 0) parsed totals = map (foldr (+) 0) parsed
in do printLn $ foldr max 0 totals in do printLn $ foldr max 0 totals
part2 : String -> IO ()
part2 input =
let parsed = parseInput input
totals = map (foldr (+) 0) parsed
sorted = reverse . sort . forget $ totals
main : IO () main : IO ()
main = do file <- readFile "input" main = do file <- readFile "input"
case file of case file of
Right content => Right content =>
do putStr "Part 1: " do putStr "Part 1: "
part1 content part1 content
putStr "Part 2: "
part2 content
Left err => printLn err Left err => printLn err