Files
AdventOfCode2025/src/Day03.hs
2025-12-05 09:04:23 +01:00

37 lines
837 B
Haskell

module Day03
( day03_1,
day03_2,
)
where
getBankJoltage :: String -> Int -> String -> Int
getBankJoltage value 0 _ = read value
getBankJoltage value n bank =
let l = length bank
bank' = take (l - n + 1) bank
x = maximum bank'
in getBankJoltage (value ++ [x]) (n - 1) (drop 1 (dropWhile (/= x) bank))
getTotalJoltage :: [String] -> Int -> Int
getTotalJoltage banks n = sum $ map (getBankJoltage "" n) banks
parseInput :: IO [String]
parseInput = do
lines <$> readFile "input/day3.txt"
day03_1 :: IO ()
day03_1 = do
banks <- parseInput
let joltage = getTotalJoltage banks 2
putStrLn $
"Day 3, Puzzle 1 solution: "
++ show joltage
day03_2 :: IO ()
day03_2 = do
banks <- parseInput
let joltage = getTotalJoltage banks 12
putStrLn $
"Day 3, Puzzle 2 solution: "
++ show joltage