[Lesson 3] FrogJmp
by 브이담곰
문제
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:int solution(int X, int Y, int 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.
Copyright 2009–2024 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
X,Y,Z 의 범위가 10억이기 때문에, 단순 for문으로는 힘들다.
계산식으로 일반화 하여, 풀이를 해야한다.
경우의 수를 3가지로 나누어 결과 값을 리턴한다.
1. X와 Y가 같을 경우
2. 최종 위치가 Y 값과 같을 경우
3. Y 보다 더 멀리 도착할 경우
풀이
// you can use includes, for example:
// #include <algorithm>
// you can write to stdout for debugging purposes, e.g.
// cout << "this is a debug message" << endl;
int solution(int X, int Y, int D) {
// Implement your solution here
if( X == Y ) return 0;
if((Y-X)% D == 0) return (Y-X)/ D;
else
{
return ((Y-X)/ D) + 1;
}
}
'Coding Test > Codility' 카테고리의 다른 글
[Lesson 3] TapeEquilibrium (0) | 2024.02.21 |
---|---|
[Lesson 3] PermMissingElem (0) | 2024.02.20 |
[Lesson 2] OddOccurrencesInArray (0) | 2024.02.20 |
[Lesson 2] Cycle Rotation (1) | 2024.02.20 |
[Lesson 1] Binary Gap (0) | 2024.02.20 |
블로그의 정보
농담곰담곰이의곰담농
브이담곰