From 302761f21a51043bda50464088460b712f39f4a3 Mon Sep 17 00:00:00 2001 From: pingu Date: Tue, 10 Dec 2024 08:18:14 +0100 Subject: [PATCH] Part 2 easy --- app/10.hs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/10.hs b/app/10.hs index 20a7fba..cc6e9d4 100644 --- a/app/10.hs +++ b/app/10.hs @@ -1,4 +1,3 @@ -{-# LANGUAGE LambdaCase #-} module Main where import Data.Functor @@ -21,12 +20,17 @@ travel :: (Int,Int) -> Matrix Int -> [(Int,Int)] travel p s = let curr = uncurry getElem p s in if curr == 9 then [p] else getAbove p s >>= (`travel` s) +travel' :: (Int,Int) -> Matrix Int -> Int +travel' p s = let curr = uncurry getElem p s in + if curr == 9 then 1 else sum $ getAbove p s <&> (`travel'` s) + solve1 :: Matrix Int -> Int solve1 s = length . concatMap (nub . (`travel` s)) $ getAllDigit 0 s -solve2 = undefined +solve2 :: Matrix Int -> Int +solve2 s = sum . ((`travel'` s) <$>) $ getAllDigit 0 s main :: IO () main = readFile "inputs/10" <&> parse >>= \i -> - print (solve1 i) - -- >> print (solve2 i) + print (solve1 i) >> + print (solve2 i)