본문 바로가기
Study & Edu/Algorithm

[codility] 1 BinaryGap

by 댓츠굿 2017. 9. 12.


Question1) BinaryGap

Find longest sequence of zeros in binary representation of an integer.


(출처 : https://codility.com/programmers/lessons/1-iterations/binary_gap/#disqus_thread)



A.) 

import java.util.*;

class Solution {
public int solution(int[] A, int[] B, int[] C) {
int begin = 0;
int end = C.length - 1;
int res = -1;
while (begin <= end) {
int mid = (begin + end) / 2;
if (check(A, B, C, mid+1)) {
end = mid - 1;
res = mid+1;
} else {
begin = mid + 1;
}
}
return res;
}

private boolean check(int[] a, int[] b, int[] c, int num) {
int[] pNails = new int[2*c.length + 1];
Arrays.fill(pNails, 0);
for (int i = 0; i < num; ++i) {
++pNails[c[i]];
}
for (int i = 1; i < pNails.length; ++i) {
pNails[i] += pNails[i-1];
}
for (int i = 0; i < a.length; ++i) {
if (pNails[b[i]] <= pNails[a[i]-1]) return false;
}
return true;
}
}


(출처 :  https://codility.com/programmers/lessons/14-binary_search_algorithm/ )

반응형