Fix solution

6ef036e2c5 actually made the solution incorrect, the list comprehension
for part b relied on V 0 0 being in the list for the element to match
    the step number. The magic oneliner is rad tho so simply adjust the
    list comprehension.
This commit is contained in:
shu 2019-12-04 00:43:18 +01:00
parent e544fbb877
commit e64af48b80

View File

@ -28,8 +28,7 @@ day3a xs ys = Set.findMin $ Set.map manhattan (intersections xs ys)
where manhattan (V2 x y) = abs x + abs y
intersections :: [V2 Int] -> [V2 Int] -> Set.Set (V2 Int)
intersections xs ys = Set.delete (V2 0 0) crossset
where crossset = (Set.fromList xs) `Set.intersection` (Set.fromList ys)
intersections xs ys = (Set.fromList xs) `Set.intersection` (Set.fromList ys)
day3b xs ys = minimum [let f = fromJust . elemIndex x in
day3b xs ys = minimum [let f = succ . fromJust . elemIndex x in
f xs + f ys | x<-Set.toList $ intersections xs ys]