-
Notifications
You must be signed in to change notification settings - Fork 2
/
03. Time Complexity. FrogJmp.swift
31 lines (24 loc) · 1.2 KB
/
03. Time Complexity. FrogJmp.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import Foundation
import Glibc
// Solution @ Sergey Leschev, Belarusian State University
// 03. Time Complexity. FrogJmp.
// 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.
public func solution(_ X: Int, _ Y: Int, _ D: Int) -> Int {
let jumps = Double(Y - X) / Double(D)
return Int(ceil(jumps))
}