양수 N을 이진법으로 바꿨을 때, 연속으로 이어지는 0의 갯수가 가장 큰 값을 return해 주세요.
이어지는 0은 1과 1사이에 있는 것을 의미합니다. 1과 1사이에 있는 0을 binary gap 이라고 하겠습니다.
const solution = N => {
const binaryNumber = N.toString(2);
const stringN = String(binaryNumber);
const arrayIndexOfOne = [];
const arrayZeroNumber = [];
for(let i = 0; i < stringN.length; i++){
if(stringN[i] === "1"){
arrayIndexOfOne.push(i)
}
}
for(let j = 0; j < arrayIndexOfOne.length; j++){
arrayZeroNumber.push(arrayIndexOfOne[j+1] - arrayIndexOfOne[j] - 1)
}
arrayZeroNumber.pop();
const result = arrayZeroNumber.sort((a,b) => b-a)[0];
if(result){
return result
}else{
return 0
}
};