# [Codility] 3. Time Complexity | FrogJmp πΈ

N'CHEΒ·2021λ 9μ 2μΌ
0

## Algorithm

1/2

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:

class Solution { public int solution(int X, int Y, int 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.

### π‘ Solution

λ¬Έμ λ κΈΈ~κ² μ€λͺλμ΄μμ§λ§ μμ£Ό κ°λ¨ν 1μ°¨ λΆλ±μμΌλ‘ μ λ¦¬κ° κ°λ₯ν©λλ€.

a = μ νμ

β΄ a β₯ (Y-X)/D

class Solution {
public int solution (int X, int Y, int D){
return (int) Math.ceil((Y-X)/(D*1.0));
}
}

### π¬ Note

1. κ³μ° κ²°κ³Όμ μμμ μ λ³΄μ‘΄νκΈ° μν΄ doubleλ‘ λ³ννκ³ μ 1.0μ κ³±ν΄μ£Όμμ΅λλ€. λͺμμ  νλ³νμ ν  μλ μμ΅λλ€.
Math.ceil((Y-X)/(D * 1.0));	//λ¬΅μμ  νλ³ν
Math.ceil((Y-X)/(double) D);	//λͺμμ  νλ³ν
1. Y μ΄μμ κ°μ μ°ΎκΈ° μν΄ Math classμ μ΄λ¦Ό ν¨μ μ€ μ¬λ¦Όμ μ¬μ©νμμ΅λλ€.

FunctionDescriptionExample
Math.around()λ°μ¬λ¦ΌMath.around(1.1) => 1.0
Math.around(1.9) => 2.0
Math.ceil()μ¬λ¦ΌMath.ceil(1.1) => 2.0
Math.floor()λ΄λ¦ΌMath.floor(1.9) => 1.0