function solution(A, B, K) {
let cnt = parseInt(B / K) - parseInt(A / K);
if(A % K === 0) cnt += 1;
return cnt;
}
어떤 구간을 K마다 자르면 완전한 subarray에는 반드시 1개의 K의 배수가 존재한다는 특성을 이용한다.
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A, B, K) {
// write your code in JavaScript (Node.js 8.9.4)
let count = 0
for (i = A; i <= B; i++ ){
if(i%K == 0){
count++;
}
}
return count
}
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A, B, K):
# write your code in Python 3.6
len_AB = B + 1 - A
if len_AB < K:
for n in range(A, B + 1):
if n % K == 0:
return 1
div, mod = divmod(len_AB, K)
# last chunk
for n in range(A + div * K, B + 1):
if n % K == 0:
return div + 1
return div
우선은 A와 B 사이에 K의 배수가 하나도 없을 경우가 있기 때문에 B + 1 - A
가 K
보다 작은 경우 따로 계산
그 다음은 B와 A사이의 거리를 K로 나누어서 나머지가 있는 경우 나머지에서 K의 배수를 찾아주고 아니면 그냥 몫을 리턴한다.