본문 바로가기
Algorithm/Codility

[Codility(코딜리티)] Lesson3. FrogJmp (100%)

by 잭피 2020. 9. 8.

Lesson 3 Time Complexity - FrogJmp (Java Solution)

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


문제

주어지는 변수는  X, Y, D 

작은 개구리가 현재 X 위치에 있다

그리고 Y와 같거나 그 이상으로 가기를 원한다

D 만큼 움직일 수 있다

Y와 같거나 그 이상으로 가려면 몇 번을 점프?

 

예를 들면, X = 10, Y = 85, D = 30

1. 10 + 30 = 40

2. 10 + 30 + 30 = 70

3. 10 + 30 + 30 + 30 = 100

-> 3번을 점프!

 

해결

결국 도착점에서 시작점을 뺀 거리를 가면되고, D씩 움직이는 것이다.

개구리가 가야할 거리는 Y-X이고,

점프 거리 D로 나눈 값을 올림하면 점프 횟수가 나온다

public class FrogJmp {
    public int solution(int X, int Y, int D) {
        int distance = Y-X;
        if (distance <= 0) return 0;

        double jump = distance / (double) D;
        return (int) Math.ceil(jump);
    }
}

예외처리로 가야할거리가 0이하면 점프는 0번을 추가하였다

간단히 소수점 올림으로 해결할 수 있었다

 

댓글