Coding Test/HackerRank

[HackerRank] Number Line Jumps c++

owls 2022. 7. 19. 15:49
728x90
  • Problem

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 x1 and moves at a rate of v1 meters per jump.
  • The second kangaroo starts at location x2 and moves at a rate of v2 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

x1 = 2

v1 = 1

x2 = 1

v2 = 2

After one jump, they are both at x = 3, (x1 + v1 = 2+1, x2 + v2 = 1 + 2), so the answer is YES.

  • Constraints

The two kangaroos jump through the following sequence of locations:

  • Sample Input
0 3 4 2
  • Sample Output
YES
  • Explanation

The two kangaroos jump through the following sequence of locations:

출처 https://www.hackerrank.com/challenges/kangaroo/problem?isFullScreen=true

  • Solutions
string kangaroo(int x1, int v1, int x2, int v2) {
    int s1 = x1 + v1; 
    int s2 = x2 + v2; 
   
    string res("NO");
    if( v1 <= v2 )   return res;
    if( s1 == s2)   return "YES";
  
    while(true){
        s1 += v1;
        s2 += v2;
        
        if( v1 <= v2 )   return res;
        
        if(s1==s2)  return "YES";
        if(s1 > s2) return res;
    }
    return res;
}

728x90