Codility 3.1 TimeComplexity FrogJmp

Sichang Park
2 min readJan 15, 2018

--

Problem

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:

def solution(X, Y, 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

Assume that:

  • X, Y and D are integers within the range [1..1,000,000,000];
  • X ≤ Y.

Complexity:

  • expected worst-case time complexity is O(1);
  • expected worst-case space complexity is O(1).

Solving Process

This is a simple division problem. It can be noted as N / K and if it has a remainder add one to quotient.

Code Solution(mine)

def solution(A, K):     
return (Y - X)// D if (Y - X) % D == 0 else (Y - X) // D + 1

Big-O Calculation

def solution(A, K):     
return (Y - X)// D if (Y - X) % D == 0 else (Y - X) // D + 1
#O(1)

Other People’s code solution

def solution(X, Y, D):   distance = Y - X   if distance % D == 0:      return distance//D   else:      return distance//D + 1#O(1)

Learning Points

  • One line if statement can be used to simplify the answer.
  • // operator

Codility Problem series

--

--