-
요약
정수 A와 B사이에서 K가 몇번 나누어지는지 반환하는 문제입니다.
아이디어
B가 K로 나누어 떨어지는 수 - A가 K로 나누어 떨어지는 수를 하면 됩니다.
다만 고려할점은 A가 K로 나누어 떨어질때 나머지 없이 나누어 떨어지는지만 생각하면 되는데요.
문제의 예시에 보이는 것 처럼 6 11 2 가 주어진다고 했을때 11/2는 5이고 6/2는 3이기때문에 아이디어대로 하면
정답은 2가 되어야하지만 실제로 11과 6 사이에는 10 8 6 총 3개가 있기 때문이죠
코드
int solution(int A, int B, int K) { // write your code in C++14 (g++ 6.2.0) int a = A%K != 0 ? A/K : A/K -1; int b = B/K; return b-a; }
'알고리즘 > Codility' 카테고리의 다른 글
Codility lesson5_4 - MinAvgTwoSlice (0) 2021.08.24 Codility lesson5_2 - GenomicRangeQuery (0) 2021.08.22 Codility lesson4_4 - PermCheck (0) 2021.08.21 Codility lesson4_3 - MissingInteger (0) 2021.08.21 Codility lesson4_2 - MaxCounters (0) 2021.08.21 댓글