Prepare your favorite cup of coffee, because we are about to enter the fantastic world of Number line jumps.
The problem
The solution
To start our solution, let’s define the function that will receive the input parameters: kagaroo, where x1 is the initial position of the first kangaroo, v1 the jumping speed of the first kangaroo, x2 the initial position of the second kangaroo and v2 the jumping speed of the second kangaroo:
Let’s start by checking whether the first kangaroo has a greater speed than the second kangaroo:
If v2 is greater than v1, it is impossible for the first kangaroo to reach the second, so the function returns NO:
return “NO“;
}
Later we will determine the initial distance between the two kangaroos, in the constant initialDistance. If x2 is greater than x1 it indicates that the first kangaroo is behind the second, so the difference will be positive. Otherwise, the difference will be negative:
Now let’s calculate the speed difference, in the constant speedDifference. To do this, let’s subtract v1 from v2:
After calculating the initial distance difference (initialDistance) and determining the speed difference (speedDifference), we will validate whether initialDistance is divisible by speedDifference. If this condition is satisfied, it means that the kangaroos will meet at some point in the future, so we return YES (indicating that the kangaroos will meet):
return “YES“;
}
If this condition is not met, it means that the kangaroos will not meet at any point in the future. Thus, we return NO:
return “NO“;
}
Final resolution
After following the step by step we have our final resolution:
if (v1 > v2) {
const initialDistance = x2 – x1;
const speedDifference = v1 – v2;
if (initialDistance % speedDifference === 0) {
return “YES“;
} else {
return “NO“;
}
} else {
return “NO“;
}
}
Share the code, spread knowledge and build the future! 😉
Images generated by DALL·E 3