[codeKata] solution

EJ__OH·2021년 12월 12일
0

양수 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
  }
  
};
profile
Junior FE Developer

0개의 댓글