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.
λ¬Έμ λ κΈΈ~κ² μ€λͺ λμ΄μμ§λ§ μμ£Ό κ°λ¨ν 1μ°¨ λΆλ±μμΌλ‘ μ λ¦¬κ° κ°λ₯ν©λλ€.
a = μ νμ Y β€ X+aD β΄ a β₯ (Y-X)/D
μ λΆλ±μμ νμ©νλ©΄ μμ£Ό κ°λ¨ν μ½λκ° μμ±λ©λλ€!
class Solution {
public int solution (int X, int Y, int D){
return (int) Math.ceil((Y-X)/(D*1.0));
}
}
Math.ceil((Y-X)/(D * 1.0)); //묡μμ νλ³ν
Math.ceil((Y-X)/(double) D); //λͺ
μμ νλ³ν
Function | Description | Example |
---|---|---|
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 |