In this Number Line Jumps HackerRank solution, You are choreographing a circus show with various animals. For one act, you are given two kangaroos on a number line ready to jump in the positive direction (i.e, toward positive infinity).
- The first kangaroo starts at location and moves at a rate of meters per jump.
- The second kangaroo starts at location and moves at a rate of meters per jump.
You have to figure out a way to get both kangaroos at the same location at the same time as part of the show. If it is possible, return YES
, otherwise return NO
.
Example
After one jump, they are both at , (, ), so the answer is YES
.
Function Description
Complete the function kangaroo in the editor below.
kangaroo has the following parameter(s):
- int x1, int v1: starting position and jump distance for kangaroo 1
- int x2, int v2: starting position and jump distance for kangaroo 2
Returns
- string: either
YES
orNO
Input Format
A single line of four space-separated integers denoting the respective values of , , , and .
Constraints
Number Line Jumps HackerRank Solution
I will Provide solution in Multiple programming languages for you. If you are not able to find the code in required language then please share in comments so that our team can help you.
Problem Solution in Python
def kangaroo(x1, v1, x2, v2):
for i in range(0,10000):
d1= x1 + v1*i
d2= x2 + v2*i
if d1==d2:
return 'YES'
break
else:
continue
return 'NO'
Problem Solution in JavaScript
function kangaroo(x1, v1, x2, v2) {
// Write your code here
if (x2 > x1 && v2 >= v1 || x2 < x1 && v2 <= v1) {
return "NO";
}
let jumps = (x1 - x2) / (v2 - v1);
if (jumps >= 0 && Number.isInteger(jumps)) {
return "YES";
} else {
return "NO";
}
}
Problem Solution in Java
public static String kangaroo(int x1, int v1, int x2, int v2) {
// Write your code here
String result = "NO";
int kangaroo1 = x1+v1;
int kangaroo2 = x2+v2;
for(int i=0; i<10000; i++) {
if(kangaroo1==kangaroo2) {
result = "YES";
break;
}
kangaroo1+=v1;
kangaroo2+=v2;
}
return result;
}
Problem Solution in C#
public static string kangaroo(int x1, int v1, int x2, int v2)
{
string answer = "";
while(true){
x1+=v1;
x2+=v2;
if(x1==x2){
answer = "YES";
break;
}else if(x1>x2){
answer = "NO";
break;
}
}
return answer;
}
Problem Solution in C++
string kangaroo(int x1, int v1, int x2, int v2) {
if (v1 == v2) {
return x1 == x2 ? "YES" : "NO";
}
float steps = float(x2 - x1) / float (v1 - v2);
if (steps >= 0 && std::floor(steps) == steps) {
return "YES";
}
return "NO";
}
Problem Solution in Ruby
def kangaroo(x1, v1, x2, v2)
# Write your code here
while (x1 < x2 && v1 > v2)
x1 +=v1
x2 +=v2
if x1 == x2
return "YES"
end
end
return "NO"
end