Day 18 part 1 solution
...sort of. It works, but it takes a lot longer than I'd like on real input. I optimized it with some memoization, but it's still far too slow to be the intended solution. I finished my actual input in over 3 minutes on my macbook m1 (...with the right answer, at least). This solution as-is isn't really going to fly for part 2, though, so I'm probably going to have to re-do it either way.
This commit is contained in:
@ -44,11 +44,16 @@ func (v Vec2[T]) Equals(other Vec2[T]) bool {
|
||||
v.Y == other.Y
|
||||
}
|
||||
|
||||
func (v Vec2[T]) ManhattanDistance(other Vec2[T]) T {
|
||||
return T(math.Abs(float64(v.X-other.X)) + math.Abs(float64(v.Y-other.Y)))
|
||||
}
|
||||
|
||||
func VecBetween[T Number](a, b Vec2[T]) Vec2[T] {
|
||||
return Vec2[T]{
|
||||
X: a.X - b.X,
|
||||
Y: a.Y - b.Y,
|
||||
}
|
||||
return a.To(b)
|
||||
}
|
||||
|
||||
func ManhattanDistance[T Number](a, b Vec2[T]) T {
|
||||
return a.ManhattanDistance(b)
|
||||
}
|
||||
|
||||
func (v Vec3[T]) Dot(other Vec3[T]) T {
|
||||
|
Reference in New Issue
Block a user