코딩 테스트/Codility
Codility FrogJmp JavaScript 풀이
K1MY0UNGHAN
2020. 3. 29. 01:40
https://app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/
FrogJmp coding task - Learn to Code - Codility
Count minimal number of jumps from position X to Y.
app.codility.com
방정식으로 생각하면 참 쉬운 수학 문제인데, 코드로 구현하려니 복잡하게 생각하게 된다.
내가 처음에 제출한 코드는 아래와 같다.
function solution(X, Y, D) {
// write your code in JavaScript (Node.js 8.9.4)
let result;
for (result = 0; X + (D*result) < Y ; result++) {
}
return result;
}
이러면 테스트 케이스는 통과할 수 있으나 반복문으로 인해 숫자가 커지면 성능이 떨어진다.
생각해보니, 반복문을 쓸 필요가 없었다.
function solution(X, Y, D) {
// write your code in JavaScript (Node.js 8.9.4)
let result;
result = ((Y-X) % D > 0) ? Math.ceil((Y-X) / D) : ((Y-X) / D);
return result;
}
이렇게 나머지 연산을 하면 된다.
조건문에 대해 설명하자면
나머지가 0 이상일 때와 0일 때, 두 가지 경우만 고려하면 되므로
나머지가 0 이상일 때는 ceil function으로 원래 나머지 값보다 1을 더해주면 된다.