Add Day 6 solutions

This commit is contained in:
Daniele Fucini
2025-12-06 10:56:46 +01:00
parent d57a39fb48
commit 8b4873f9a9
4 changed files with 63 additions and 1 deletions

View File

@@ -7,4 +7,4 @@
|03 |★ ★ |09 | |
|04 |★ ★ |10 | |
|05 |★ ★ |11 | |
|06 | |12 | |
|06 |★ ★ |12 | |

View File

@@ -35,3 +35,4 @@ executable adventofcode2025
Day03
Day04
Day05
Day06

53
src/Day06.hs Normal file
View File

@@ -0,0 +1,53 @@
module Day06
( day06_1,
day06_2,
)
where
import Data.List (groupBy, transpose)
solveProblem :: [String] -> Int
solveProblem problem =
let op = last problem
values = map read $ init problem
in case op of
"+" -> sum values
"*" -> product values
_ -> 0
solveProblem' :: [String] -> Int
solveProblem' [] = 0
solveProblem' (x : xs) =
let op = last x
v1 = read $ init x
values = v1 : [read v | v <- xs]
in case op of
'+' -> sum values
'*' -> product values
_ -> 0
parseInput :: IO [[String]]
parseInput = do
transpose . map words . lines <$> readFile "input/day6.txt"
parseInput' :: IO [[String]]
parseInput' = do
input <- transpose . lines <$> readFile "input/day6.txt"
let problems = map (filter (not . all (== ' '))) $ groupBy (\_ y -> not (all (== ' ') y)) input
return problems
day06_1 :: IO ()
day06_1 = do
input <- parseInput
let result = sum $ map solveProblem input
putStrLn $
"Day 6, Puzzle 1 solution: "
++ show result
day06_2 :: IO ()
day06_2 = do
input <- parseInput'
let result = sum $ map solveProblem' input
putStrLn $
"Day 6, Puzzle 2 solution: "
++ show result

View File

@@ -5,6 +5,7 @@ import Day02 (day02_1, day02_2)
import Day03 (day03_1, day03_2)
import Day04 (day04_1, day04_2)
import Day05 (day05_1, day05_2)
import Day06 (day06_1, day06_2)
import System.Environment (getArgs)
main :: IO ()
@@ -36,6 +37,11 @@ main = do
"5" : _ -> do
day05_1
day05_2
"6" : "1" : _ -> day06_1
"6" : "2" : _ -> day06_2
"6" : _ -> do
day06_1
day06_2
"all" : _ -> do
day01_1
day01_2
@@ -47,4 +53,6 @@ main = do
day04_2
day05_1
day05_2
day06_1
day06_2
_ -> error "Not implemented"