728x90
1. K로 나눠지는 가장 첫번째 인자 x(A<=x<=B) 찾기
2. '(B-x)/k' == 'x<n<=B인 n값 중 K로 나눠지는 값의 개수'
에서 1을 더해주면
'x<=n<=B인 n값 중 K로 나눠지는 값의 개수'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public int solution(int A, int B, int K) { // write your code in Java SE 8 // 첫번째 인자 찾는것 // B-A를 K로 나눈 몫을 더하는 것 int first = (A/K)*K; int unit = 0; int temp = 0; while(temp<=B){ temp = first + K*unit; if( A<=temp && temp<=B ) { first = temp; break; } else unit++; } if(temp>B) return 0; return (B-first)/K+1; } | cs |
'알고리즘 풀이 > Codility' 카테고리의 다른 글
Codility - Distinct (Sorting) (0) | 2019.12.13 |
---|---|
codility - MaxProductOfThree (Sorting) (0) | 2019.12.13 |
codility - MinAvgTwoSlice (Prefix Sums) (0) | 2019.12.13 |
codility - GenomicRangeQuery (Prefix Sums) (0) | 2019.12.10 |
codility - PassingCars (Prefix Sums) (0) | 2019.12.10 |