From 316a48b6a87bffce372ef2186ace9f0565c3eceb Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 9 Mar 2023 21:55:36 +0100 Subject: Renamed folder --- 2020/01/second.hs | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 2020/01/second.hs (limited to '2020/01/second.hs') diff --git a/2020/01/second.hs b/2020/01/second.hs deleted file mode 100644 index 9c7f3b3..0000000 --- a/2020/01/second.hs +++ /dev/null @@ -1,32 +0,0 @@ -module Main where - -import Control.Monad (when) -import Data.Maybe (catMaybes, fromJust) -import System.Exit (die) - -exampleExpectedOutput = 241861950 - -compute2020 :: Int -> Int -> Int -> Maybe Int -compute2020 a b c - | a + b + c == 2020 = Just (a * b * c) - | otherwise = Nothing - -compute :: String -> Int -compute input = head . catMaybes $ processInput inputList - where - inputList :: [Int] - inputList = map read $ lines input - processInput :: [Int] -> [Maybe Int] - processInput (_:[]) = [Nothing] - processInput (x:xs) = (processA $ compute2020 x) xs ++ processInput xs - processA :: (Int -> Int -> Maybe Int) -> [Int] -> [Maybe Int] - processA f (_:[]) = [Nothing] - processA f (x:xs) = map (f x) xs ++ processA f xs - -main :: IO () -main = do - example <- readFile "example" - let exampleOutput = compute example - when (exampleOutput /= exampleExpectedOutput) (die $ "example failed: got " ++ show exampleOutput ++ " instead of " ++ show exampleExpectedOutput) - input <- readFile "input" - print $ compute input -- cgit v1.2.3