https://programmers.co.kr/learn/courses/30/lessons/70129
function solution(s) {
let zero = 0;
let cnt = 0;
while (s !== '1') {
let tmpLen = [...s].reduce((total, string) => {
// console.log(`s : ${s}, total : ${total}, string: ${string}`)
if (string == '0') {
zero++;
return total;
}
return total+1;
}, 0);
s = tmpLen.toString(2);
cnt++;
}
return [cnt, zero];
}
let s = "110010101001";
console.log(solution(s));
// 변환횟수, 제거된 0 개수.
문제에 적힌대로 그냥 반복하면되는 문제였다.
s에서 0있으면 지우고, zero횟수 세고, 지우고나면 s의 길이만큼 이진수로 변환해 다시 이작업을 해서 1이될때까지 이 작업을 반복.