Day 03
This commit is contained in:
18
day03/Part1.hs
Normal file
18
day03/Part1.hs
Normal 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)))
|
||||
Reference in New Issue
Block a user