aboutsummaryrefslogtreecommitdiff
path: root/2020/01/second.hs
diff options
context:
space:
mode:
Diffstat (limited to '2020/01/second.hs')
-rw-r--r--2020/01/second.hs32
1 files changed, 0 insertions, 32 deletions
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