From eb9ae79611df388da5f9d11ee5a9fb9aeb7eaec4 Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Mon, 5 Dec 2022 20:16:28 +0530 Subject: [PATCH] day3: update - avoid using unecessary helpers Signed-off-by: Amneesh Singh --- day3.hs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/day3.hs b/day3.hs index c789922..b0217fa 100644 --- a/day3.hs +++ b/day3.hs @@ -1,27 +1,24 @@ import Data.Char (isAsciiLower, isAsciiUpper) import Data.List (intersect) -import Lib (chunks) main :: IO () main = do - input <- readFile "day3.in" + input <- lines <$> readFile "day3.in" putStr "Q1: " print $ q1 input putStr "Q2: " print $ q2 input -q1 :: String -> Int +q1 :: [String] -> Int q1 = sum . map (\x -> val . head . uncurry intersect $ splitAt (div (length x) 2) x) - . lines -q2 :: String -> Int -q2 = - sum - . map (val . head . foldr1 intersect) - . chunks 3 - . lines +q2 :: [String] -> Int +q2 [] = 0 +q2 input = + let (cur, rest) = splitAt 3 input + in (val . head . foldr1 intersect) cur + q2 rest val :: Char -> Int val c