L3_Frogjmp

L3_Frogjmp

목차

  • Step 1. 문제 설명
  • Step 2. 풀이
  • Step 3. 결과

Step 1. 문제 설명


한번 점프할 때 마다 D 거리를 뛰는 개구리 한 마리는 현재 X 위치에 있으며 Y위치까지 가고싶어한다. 그럴때 X에서 Y까지의 최소 점프 횟수를 반환하는 문제이다.

문제 : https://app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/

step 2. 풀이


첫번째 풀이

1
2
3
4
5
6
if X == Y:  
    return 0  
  
for i in range(1, opp + 1):  
    if (Y-X) - i*D <= 0:  
        return i
  1. X,Y 거리가 같은 경우 점프 횟수는 0 반환

  2. 그렇지 않은 경우 (점프횟수 x D) 가 가야할 거리보다 클 경우까지 반복문 실행

일일이 계산하고 구해야기에 너무 무식한 방법이었다.

두번째 풀이

1
2
3
4
5
6
7
8
9
10
def solution(X, Y, D):  
    distance = Y - X  
  
    if distance == 0:  
        return 0  
  
  if distance % D == 0:  
        return distance // D  
    else:  
        return distance // D + 1

아주 심플하게 뛰어야할 거리를 개구리가 뛸 수 있는 만큼의 거리로 나눈 몫으로 점프 횟수를 반환한다. 나머지가 0이 아닌 경우엔 +1 로 점프 횟수를 추가해준다.

Step 3. 결과


FrogJump

첫 번째는 performance 때문에 44점을 맞았다 ^^…