function solution(s) {
let binaryCnt = 0;
let zeroCnt = 0;
const getBinary = (binary) => {
let newS = binary
.split("")
.map((el) => {
if (el === "0") zeroCnt++;
return el;
})
.filter((el) => el !== "0")
.join("");
let newSLength = newS.length;
let newSLengthBinary = newSLength.toString(2);
binaryCnt++;
if (newSLengthBinary !== "1") getBinary(newSLengthBinary);
return [binaryCnt, zeroCnt];
};
return getBinary(s);
}
다른 사람 풀이
while문을 사용해서 s의 길이가 1보다 클때까지 반복한다.
function solution2(s) {
let result = [0, 0];
while (s.length > 1) {
result[0]++;
result[1] += s.match(/0/g || []).length;
s = s.match(/0/g, "").length.toString(2);
}
}