[Codility] BinaryGap
문제정보
어떻게 풀까?
1이 연속으로 나올 경우의 처리를 고려한다.
문제풀이(Java)
import java.util.*;
class Solution {
public int solution(int N) {
char[] arr = Integer.toBinaryString(N).toCharArray();
int max = 0;
int length = 0;
boolean ready = false;
boolean gap = false;
for(int i=0; i<arr.length; i++){
if(arr[i] == '1'){
if(ready == false){
ready = true;
}else if(ready == true && gap == true){
if(max < length){
max = length;
}
length = 0;
gap = false;
}
}else if(arr[i] == '0'){
if(ready == true){
gap = true;
length++;
}
}
}
return max;
}
}
Leave a comment