IT/Algorithm

코딜리티(Codility) Lesson3 FrogJmp 문제풀기

차가운남자 2021. 2. 28. 23:41

A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D.

Count the minimal number of jumps that the small frog must perform to reach its target.

Write a function:

function solution(X, Y, D);

that, given three integers X, Y and D, returns the minimal number of jumps from position X to a position equal to or greater than Y.

For example, given:

X = 10 Y = 85 D = 30

the function should return 3, because the frog will be positioned as follows:

  • after the first jump, at position 10 + 30 = 40
  • after the second jump, at position 10 + 30 + 30 = 70
  • after the third jump, at position 10 + 30 + 30 + 30 = 100

Write an efficient algorithm for the following assumptions:

  • X, Y and D are integers within the range [1..1,000,000,000];
  • X ≤ Y.

    Copyright 2009–2021 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.


문제 이해해보기:

1. 첫번쨰 점프시 높이 X에서 정해진 높이 Y를 뺴준다.

2. 두번쨰 점프시 포지션 D만큼 규칙적으로 뛴다.

3. Y를 넘는 횟수를 측정

결론: Math.ceil로 올림으로 처리하였다. floor로 처리 했을경우는 테스트 케이스에 문제가 생기는 경우가 있었음.

 

function solution(X, Y, D) {
    let result  = Y - X;
    const answer = result / D;
    return Math.ceil(answer);
}