From 75ab2f6cf68232ea647ff77f9f47647913c4bd3e Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Fri, 2 Dec 2022 14:27:47 +0530 Subject: [PATCH] rearrange Signed-off-by: Amneesh Singh --- Day1/1.hs | 4 ---- Day1/2.hs | 6 ------ Day1/Lib.hs => Lib.hs | 7 +------ day1.hs | 24 ++++++++++++++++++++++++ Day1/input => day1.in | 0 5 files changed, 25 insertions(+), 16 deletions(-) delete mode 100644 Day1/1.hs delete mode 100644 Day1/2.hs rename Day1/Lib.hs => Lib.hs (51%) create mode 100644 day1.hs rename Day1/input => day1.in (100%) diff --git a/Day1/1.hs b/Day1/1.hs deleted file mode 100644 index 6815206..0000000 --- a/Day1/1.hs +++ /dev/null @@ -1,4 +0,0 @@ -import Lib (calories) - -main :: IO () -main = print . maximum . calories =<< readFile "input" diff --git a/Day1/2.hs b/Day1/2.hs deleted file mode 100644 index 6a2a45a..0000000 --- a/Day1/2.hs +++ /dev/null @@ -1,6 +0,0 @@ -import Data.List (sortOn) -import Data.Ord (Down (Down)) -import Lib (calories) - -main :: IO () -main = print . sum . take 3 . sortOn Down . calories =<< readFile "input" diff --git a/Day1/Lib.hs b/Lib.hs similarity index 51% rename from Day1/Lib.hs rename to Lib.hs index 75b1724..6ea4ac2 100644 --- a/Day1/Lib.hs +++ b/Lib.hs @@ -1,9 +1,4 @@ -module Lib (calories) where - -calories :: String -> [Integer] -calories input = - map (sum . map read) $ - filter (not . null) $ split "" $ split '\n' input +module Lib (split) where split :: Eq a => a -> [a] -> [[a]] split del = diff --git a/day1.hs b/day1.hs new file mode 100644 index 0000000..b7e729c --- /dev/null +++ b/day1.hs @@ -0,0 +1,24 @@ +import Data.List (sortOn) +import Data.Ord (Down (Down)) +import Lib (split) + +main :: IO () +main = do + input <- readFile "day1.in" + putStr "Q1: " + print $ q1 input + putStr "Q2: " + print $ q2 input + +q1 :: String -> Int +q1 = maximum . calories + +q2 :: String -> Int +q2 = sum . take 3 . sortOn Down . calories + +calories :: String -> [Int] +calories = + map (sum . map read) + . filter (not . null) + . split "" + . split '\n' diff --git a/Day1/input b/day1.in similarity index 100% rename from Day1/input rename to day1.in