Lesson 3 Time Complexity - FrogJmp (Java Solution)
app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/
문제
주어지는 변수는 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번을 추가하였다
간단히 소수점 올림으로 해결할 수 있었다
'Algorithm > Codility' 카테고리의 다른 글
[Codility(코딜리티)] Lesson3. TapeEquilibrium (100%) (0) | 2020.09.09 |
---|---|
[Codility(코딜리티)] Lesson3. PermMissingElem (100%) (0) | 2020.09.08 |
[Codility(코딜리티)] Lesson2. OddOccurrencesInArray (100%) (0) | 2020.09.07 |
[Codility(코딜리티)] Lesson2. CyclicRotation (100%) (0) | 2020.09.06 |
[Codility(코딜리티)] Lesson1. BinaryGap (100%) (0) | 2020.09.03 |
댓글