프로그래머스 [이진 변환 반복하기] - js

이진 변환 반복하기
https://programmers.co.kr/learn/courses/30/lessons/70129


주어진 비트를 다음 조건에 따라 변화시킨다. 반복적으로 하여 '1'로 만드는 작업중,
1. 작업이 반복되는 횟수, 2. 그 작업 중 제거되는 '0'의 총 갯수를 배열로 반환.


정답 코드

const solution = (s) => {
    let bit = s;
  	// 총 변화수, 제거되는 총 0의 수.
    let totalTrans = 0, totalZero=0;
    while (bit !== '1') {
        const bitLength = [...bit].filter(el => (el === '1')).length;
        totalZero += bit.length - bitLength;
        bit = bitLength.toString(2);
        totalTrans += 1;
    }
    return [totalTrans, totalZero]
}

좋은 웹페이지 즐겨찾기