From 3afb01ca7807be22526932276a29992de74f2e22 Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Thu, 1 Dec 2022 11:06:04 -0500 Subject: [PATCH] Day 1 Part 2 --- 01/Main.idr | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/01/Main.idr b/01/Main.idr index dab8bdf..1e1da45 100644 --- a/01/Main.idr +++ b/01/Main.idr @@ -2,18 +2,30 @@ import System.File.ReadWrite import Data.String 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 input = - let inputLines = lines input - grouped = split (== "") inputLines - parsed = map (map cast) grouped + let parsed = parseInput input totals = map (foldr (+) 0) parsed 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 = do file <- readFile "input" case file of Right content => do putStr "Part 1: " part1 content + putStr "Part 2: " + part2 content Left err => printLn err