mirror of
https://codeberg.org/JasterV/aoc2024-haskell.git
synced 2026-04-26 18:10:05 +00:00
day 10 wip
This commit is contained in:
parent
acf2b3b964
commit
ee615cb0c4
1 changed files with 11 additions and 8 deletions
15
src/Day10.hs
15
src/Day10.hs
|
|
@ -22,14 +22,17 @@ rating :: Matrix Int -> Point -> Point -> Int
|
|||
rating matrix x y = go (getCandidates 1 x) [y] 1
|
||||
where
|
||||
go :: [Point] -> [Point] -> Int -> Int
|
||||
go _ _ 6 = 0
|
||||
go leftFront rightFront step =
|
||||
go leftFront rightFront step
|
||||
| step > 5 = 0
|
||||
| step < 5 =
|
||||
let leftFront' = concatMap (getCandidates (1 + step)) leftFront
|
||||
rightFront' = concatMap (getCandidates (9 - step)) rightFront
|
||||
intersection = intersect leftFront rightFront
|
||||
in if not (null intersection)
|
||||
then length intersection
|
||||
else go leftFront' rightFront' (step + 1)
|
||||
in go leftFront' rightFront' (step + 1)
|
||||
| otherwise =
|
||||
let intersectionA = intersect leftFront rightFront
|
||||
intersectionB = intersect rightFront leftFront
|
||||
intersection = if length intersectionA > length intersectionB then intersectionA else intersectionB
|
||||
in length intersection
|
||||
|
||||
getCandidates :: Int -> Point -> [Point]
|
||||
getCandidates value (row, col) =
|
||||
|
|
|
|||
Loading…
Reference in a new issue