-
요약
개구리가 X의 위치에서 점프를하여 Y이상의 거리에 가야하는데 점프거리는 D입니다.
X<=Y 입니다.
아이디어
1. Y에서 X의 차이가 개구리가 이동할 거리가 된다. 고려할 것은 두가지로 보인다.
2. X == Y인 경우 : Y이상의 거리를 가야하기때문에 점프하지 않아도 됨
3. Y == D인 경우 : 한번만 점프를 하더라도 Y이상이 됨
코드
int solution(int X, int Y, int D) { // write your code in C++14 (g++ 6.2.0) int cnt = 0; int dist = Y - X; if (D < Y) cnt = dist % D == 0 ? dist / D : dist / D + 1; else if (D == Y) cnt = 1; return cnt; }
결과는
직관적으로 작성했는데 운이 좋게 1트만에 통과네요.
간단하게 코드설명을 하자면 첫번째 케이스인 X와 Y가 같은 경우 dist가 0이기때문에 D로 나누더라도 0이기때문에 if문에서 이 케이스를 처리했다고 보시면되고, 두번째 케이스는 else if에서 cnt에 1을 할당하여 처리했습니다.
혹시 다른 아이디어가 있으신분들은 공유 부탁드립니다.
제가 고민해볼 수 있게되는 댓글은 저를 성장시킵니다.
'알고리즘 > Codility' 카테고리의 다른 글
Codility lesson3_3 - TapeEquilibrium (0) 2021.08.15 Codility lesson3_2 - PermMissingElem (0) 2021.08.15 Codility lesson2_2 - OddOccurrencesInArray (0) 2021.08.15 Codility lesson2_1 - CyclicRotation (0) 2021.08.14 Codility lesson1 - BinaryGap (0) 2021.08.14 댓글