This commit is contained in:
2023-12-03 13:27:50 +01:00
parent 357c6dd0c3
commit fd46f6dfa2
5 changed files with 135 additions and 0 deletions

18
day03/Part1.hs Normal file
View File

@@ -0,0 +1,18 @@
module Part1 where
import Commons
isSymbolNeighbor :: [Coordinates] -> [Coordinates] -> Bool
isSymbolNeighbor [] _ = False
isSymbolNeighbor (h: t) symbolsCoordinates = h `elem` symbolsCoordinates || isSymbolNeighbor t symbolsCoordinates
getActualPartNumbers :: [NumberPart] -> [Coordinates] -> [NumberPart]
getActualPartNumbers [] _ = []
getActualPartNumbers (h: t) symbolsCoordinates
| isSymbolNeighbor (neighbors h) symbolsCoordinates = h: getActualPartNumbers t symbolsCoordinates
| otherwise = getActualPartNumbers t symbolsCoordinates
getActualPartValuesNumbersFromEngine :: Engine -> [Int]
getActualPartValuesNumbersFromEngine engine =
map value (getActualPartNumbers (numbers engine) (map coordinates (symbols engine)))