Part 2 easy
This commit is contained in:
parent
9b187ca14b
commit
0415c9eacf
11
app/10.hs
11
app/10.hs
@ -21,12 +21,17 @@ travel :: (Int,Int) -> Matrix Int -> [(Int,Int)]
|
|||||||
travel p s = let curr = uncurry getElem p s in
|
travel p s = let curr = uncurry getElem p s in
|
||||||
if curr == 9 then [p] else getAbove p s >>= (`travel` s)
|
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 :: Matrix Int -> Int
|
||||||
solve1 s = length . concatMap (nub . (`travel` s)) $ getAllDigit 0 s
|
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 :: IO ()
|
||||||
main = readFile "inputs/10" <&> parse >>= \i ->
|
main = readFile "inputs/10" <&> parse >>= \i ->
|
||||||
print (solve1 i)
|
print (solve1 i) >>
|
||||||
-- >> print (solve2 i)
|
print (solve2 i)
|
||||||
|
Loading…
Reference in New Issue
Block a user