YUDA't

0. 문제

작은 개구리 하나가 X에서 Y(혹은 그보다 더 멀리)로 이동하고 싶어한다.

개구리는 매 점프마다 D만큼 이동한다.

개구리가 원하는 위치에 도달할 때까지 필요한 최소 점프 횟수를 구하라.


1. 답변

Codility에서 print()가 된다고 python3를 지원한다고 생각했던 게 오산이었다.

문제를 읽고 왜 이렇게 쉽지 하고 1-2분 만에 풀었는데, 정답률 44%..

python2와 python3의 round() 함수가 다른 값을 내놓는 다는 걸 처음 알았다.(python2를 쓴 적이 거의 없으니..)


처음 짰던 코드는 이렇다.

def solution(X, Y, D):
    return int(round((Y - X) / D + 0.5))


깨달음(?)을 얻고 난 뒤의 코드. 시간복잡도 O(1)
def solution(X, Y, D):
    if (Y-X)%D:
        return (Y-X)//D + 1
    else:
        return (Y - X) // D


2.

스택오버플로우에서 본 python2와 python3의 round() 함수 질문


'개발 > 알고리즘 문제' 카테고리의 다른 글

[Codility] FrogRiverOne  (0) 2017.11.10
[Codility] PermCheck  (0) 2017.11.09
[Codility] FrogJmp  (0) 2017.11.07
[Codility] TapeEquilibrium  (0) 2017.11.06
[Codility] PermMissingElem  (0) 2017.11.05
[Codility] CyclicRotation  (0) 2017.11.04