본문 바로가기

알고리즘

Prefix Sums_Codility

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.

 

풀이

function solution(A, B, K) {
    let count = parseInt(B / K) - parseInt(A / K);
    if (A % K === 0) count++;

    return count;
}

count 변수는 A와 B사이에 K로 나눌수 있는 수를 가지고

A가 K로 나눌 수 있는지 여부확인 후 count 갯수를 증가시킨다.

 

 

 

'알고리즘' 카테고리의 다른 글

TapeEquilibrium_codility  (0) 2022.03.11
PermMissingElem_codility  (0) 2022.02.21
FrogJmp_codility  (0) 2022.02.18
OddOccurrencesInArray_Codility  (0) 2022.02.16
CyclicRotation_Codility  (0) 2022.02.15