알고리즘 풀이/Codility
codility - CountDiv (Prefix Sums)
배게
2019. 12. 13. 03:00
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 |