먼저, 최종답안 배열을 크기 2로 지정하여 0으로 초기화를 시켰다.
0의 개수를 파악하는 함수를 따로 작성하여 최종답안 배열의 두번째 인자로 더해주었다.
이후 s가 "1"이 아니면 while문을 계속해서 실행하도록 구현하고,
0을 모두 제거하기 위해 String.prototype.replace( )를 사용하였다.
이때, 정규식
을 첫번째 인자
로 전달하고, 대체할 문자열
을 두번째 인자
로 전달하였다
제거된 문자열 s의 길이에 대한 이진수를 가져오기 위해 Object.prototype.toString( ) 을 사용하였다.
최종적인 코드는 다음과 같다👇
function getZeroCount (x){
let count = 0;
for(let i = 0 ; i< x.length ; i++){
if(x[i] === '0')
count++;
}
return count;
}
function solution(s) {
var answer = new Array(2).fill(0);
while(s != "1"){
answer[1] += getZeroCount(s);
s = s.replace(/0/g, '');
answer[0] ++;
s = (s.length).toString(2);
}
return answer;
}