관리 메뉴

有希

HackerRank/Number Line Jumps 본문

프로그래밍/알고리즘+코딩테스트

HackerRank/Number Line Jumps

有希. 2022. 5. 2. 02:24

두 캥거루가 각자 다른 출발선에서 각자 다른 속도로 한 번씩 점프할 때 만날 수 있는가를 물어보는 문제.

속도가 빠른 녀석이 앞에 있다면 영영 만나지 못하니 NO

속도가 빠른 녀석이 뒤에 있다면 만날수도 있으므로 루프 돌면서 계산해서 만나면 YES처리해준다.

더 빠르게는, abs(x1-x2)%abs(y1-y2) == 0 라면 YES가 되겠다.  while 루프를 도는 것을 한 번에 수학식으로 처리한 것이다.

string kangaroo(int x1, int v1, int x2, int v2) {
    string ret="";
    while(true)
    {
        if(v1 >= v2 && x1>x2) 
        {
            ret = "NO";
            break;
        }
        
        if(v2 >= v1 && x2 > x1)
        {
            ret = "NO";
            break;
        }
        
        if(x1 == x2)
        {
           ret = "YES";
           break; 
        } 
        
        x1 += v1;
        x2 += v2;
    }
    
    return ret;
}

'프로그래밍 > 알고리즘+코딩테스트' 카테고리의 다른 글

HackerRank/Subarray Division  (0) 2022.05.08
HackerRank/Between Two Sets  (0) 2022.05.03
HackerRank/Grading Students  (0) 2022.05.01
HackerRank/Time Conversion  (0) 2022.05.01
LeetCode/ Jump Game  (0) 2022.04.30