2023-11-28 22:21:26 +01:00
|
|
|
module Main where
|
|
|
|
|
2023-11-29 22:58:49 +01:00
|
|
|
import Utils (readInput)
|
|
|
|
import qualified Day01
|
2023-12-02 13:42:14 +01:00
|
|
|
import qualified Day02
|
2023-12-03 13:12:15 +01:00
|
|
|
import qualified Day03
|
2023-12-04 23:07:37 +01:00
|
|
|
import qualified Day04
|
2023-12-01 23:03:57 +01:00
|
|
|
|
2023-11-28 22:21:26 +01:00
|
|
|
|
2023-12-02 13:42:14 +01:00
|
|
|
day01 :: IO ()
|
|
|
|
day01 = do
|
|
|
|
input <- Day01.parse <$> readInput 1
|
|
|
|
print . Day01.solveA $ input
|
|
|
|
print . Day01.solveB $ input
|
|
|
|
|
|
|
|
day02 :: IO ()
|
|
|
|
day02 = do
|
|
|
|
text <- readInput 2
|
|
|
|
case Day02.parse text of
|
|
|
|
Left err -> putStrLn err
|
2023-12-02 14:32:05 +01:00
|
|
|
Right xd -> do
|
|
|
|
print . Day02.solveA $ xd
|
|
|
|
print . Day02.solveB $ xd
|
2023-12-02 13:42:14 +01:00
|
|
|
|
2023-12-03 13:12:15 +01:00
|
|
|
day03 :: IO ()
|
|
|
|
day03 = do
|
|
|
|
text <- readInput 3
|
|
|
|
case Day03.parse text of
|
|
|
|
Left err -> putStrLn err
|
|
|
|
Right xd -> do
|
2023-12-03 19:34:55 +01:00
|
|
|
print . Day03.solveA $ xd
|
2023-12-03 20:02:28 +01:00
|
|
|
print . Day03.solveB $ xd
|
2023-12-03 13:12:15 +01:00
|
|
|
|
2023-12-04 23:07:37 +01:00
|
|
|
day04 :: IO ()
|
|
|
|
day04 = do
|
|
|
|
text <- readInput 4
|
|
|
|
case Day04.parse text of
|
|
|
|
Left err -> putStrLn err
|
|
|
|
Right xd -> do
|
|
|
|
print . Day04.solveA $ xd
|
|
|
|
print . Day04.solveB $ xd
|
|
|
|
|
2023-11-28 22:21:26 +01:00
|
|
|
main :: IO ()
|
|
|
|
main = do
|
2023-12-03 13:12:15 +01:00
|
|
|
-- day01
|
|
|
|
-- day02
|
2023-12-04 23:07:37 +01:00
|
|
|
-- day03
|
|
|
|
day04
|
2023-12-03 19:34:55 +01:00
|
|
|
pure ()
|