I know that we can brute force it by placing an obstacle at every valid position in the path, but is there a more elegant / efficient solution?