1. 문제
Write a function:
class Solution { public int solution(int A, int B, int K); }
that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.:
{ i : A ≤ i ≤ B, i mod K = 0 }
For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by 2 within the range [6..11], namely 6, 8 and 10.
Write an efficient algorithm for the following assumptions:
- A and B are integers within the range [0..2,000,000,000];
- K is an integer within the range [1..2,000,000,000];
- A ≤ B.
Copyright 2009–2020 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
2. 코드
class Solution {
public int solution(int A, int B, int K) {
int start = (A % K) == 0 ? A / K - 1 : A / K;
int end = B / K;
return end - start;
}
}'Algorithm Test > Java' 카테고리의 다른 글
| [Codility] Prefix Sums - MinAvgTwoSlice / Java (0) | 2020.06.14 |
|---|---|
| [Codility] Prefix Sums - GenomicRangeQuery / Java (0) | 2020.06.14 |
| [Codility] Counting Elements - PermCheck / Java (0) | 2020.06.14 |
| [Codility] Counting Elements - MissingInteger / Java (0) | 2020.06.14 |
| [Codility] Counting Elements - MaxCounters / Java (0) | 2020.06.14 |