diff --git a/adventofcode2025.cabal b/adventofcode2025.cabal index 77c3e26..c1c5125 100644 --- a/adventofcode2025.cabal +++ b/adventofcode2025.cabal @@ -32,3 +32,4 @@ executable adventofcode2025 other-modules: Day01 Day02 + Day03 diff --git a/src/Day03.hs b/src/Day03.hs new file mode 100644 index 0000000..4ce0093 --- /dev/null +++ b/src/Day03.hs @@ -0,0 +1,25 @@ +module Day03 + ( day03_1, + ) +where + +getBankJoltage :: String -> Int +getBankJoltage bank = read [x, y] + where x = maximum $ init bank + y = maximum bank' + bank' = drop 1 $ dropWhile (/= x) bank + +getTotalJoltage :: [String] -> Int +getTotalJoltage banks = sum $ map getBankJoltage banks + +parseInput :: IO [String] +parseInput = do + lines <$> readFile "input/day3.txt" + +day03_1 :: IO () +day03_1 = do + banks <- parseInput + let joltage = getTotalJoltage banks + putStrLn $ + "Day 3, Puzzle 1 solution: " + ++ show joltage diff --git a/src/Main.hs b/src/Main.hs index a10307c..c694ada 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -2,6 +2,7 @@ module Main (main) where import Day01 (day01_1, day01_2) import Day02 (day02_1, day02_2) +import Day03 (day03_1) import System.Environment (getArgs) main :: IO () @@ -18,9 +19,13 @@ main = do "2" : _ -> do day02_1 day02_2 + "3" : "1" : _ -> day03_1 + "3" : _ -> do + day03_1 "all" : _ -> do day01_1 day01_2 day02_1 day02_2 + day03_1 _ -> error "Not implemented"