Algorithm/Codility
[코딜리티/Java] CountDiv
wavid
2020. 12. 28. 10:46
A, B, K 세 숫자를 입력 받아서 A ~ B 사이 숫자 중 K로 나누어떨어지는 개수를 return하는 문제.
처음에는 A ~ B까지 다 loop 돌면서 나누어떨어지는지 확인했으나 시간초과로 100%가 안나왔다. 여러가지 테스트해보다가 A / K, B / K 한 몫이 A에 K로, B에 K로 나누어떨어지는 숫자의 개수인 것을 알게되었고 그 사실을 응용해서 해결하였다.
class Solution {
public int solution(int A, int B, int K) {
// B / K - A / K 해주고
int result = B / K - A / K;
// 만약 A가 K로 나누어떨어지는 경우 A도 포함시켜야하기 때문에 + 1
if (A % K == 0) {
result++;
}
return result;
}
}