[HackerRank] - Number Line Jumps

sarang_daddy·2023년 2월 15일
0

문제출처

문제

두마리의 캥거루가 있다.
스타트 지점과 점프거리가 다르다고 했을때 둘이 만날수 있는가?

예제

0 3 4 2 => YES
0 2 5 3 => NO

풀이

  1. 매 카운트마다 캥거루가 이동하고 이동 위치를 받는다.
  2. 1번 캥거루 위치가 2번 캥거루보다 적고 이동 거리도 적으면 못만난다.
  3. 1번 캥거루가 뒤에 있고 이동거리가 둘다 같아도 못만난다.
  4. 앞선 캥거루 이동 거리가 뒤 캥거루 이동거리보다 길면 못만난다.
function kangaroo(x1, v1, x2, v2) {
  let count = 1;
  let kang1 = x1 + v1 * count;
  let kang2 = x2 + v2 * count;

  while (kang1 !== kang2) {
    if (x1 < x2 && v1 < v2) return "NO";
    if (x1 < x2 && v1 === v2) return "NO";
    if (kang2 - kang1 < 0) return "NO";

    kang1 = x1 + v1 * count;
    kang2 = x2 + v2 * count;
    count++;
  }

  return "YES";
}

다른 사람 풀이

(x1 - x2) % (v2 - v1) == 0

profile
한 발자국, 한 걸음 느리더라도 하루하루 발전하는 삶을 살자.

0개의 댓글