Programming/코테

Codility - Lesson 3 - 1. FrogJump

Task description

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

Write an efficient algorithm for the following assumptions:

 

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

Code

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(X, Y, D):
    # write your code in Python 3.6

    # frog가 가야 할 거리 정의
    distance = Y - X
    
    # distance가 0인 경우 0 반환
    if distance == 0:
        answer = 0
    
    # distance를 D로 나누어 나머지가 0일 경우 몫 반환
    elif distance % D == 0 :
        answer = int(distance / D)
        
    # distance를 D로 나누어 나머지가 0이 아닐 경우 몫 + 1 반환
    else:
        answer = int(distance / D) + 1

    return answer