Algorithm/programmers

이진 변환 반복하기 ( Level 2, JavaScript, 월간 코드 챌린지 시즌1)

takeU 2021. 8. 4. 16:45
반응형

이진 변환 반복하기 ( Level 2 )

Programmers 월간 코드 챌린지 시즌1 ( JavaScript )

문제 링크

 

나의 풀이

function solution(s) {
    let count = 0, countZero = 0;
    while ( s !== "1" ) {
        if ( s.split('').every(a => a === '1') ) {
            s = (s.length).toString(2)
        } else {
            const len = s.split('').filter(a => a === '1').length
            countZero += s.length - len
            s = len.toString(2)
        }
        count++
    }
    return [count, countZero]
}
  1. 변환 횟수 count, 제거된 0의 개수를 담을 변수 countZero를 만든다.
  2. s가 1이 될 때 까지 반복하며 문제에서 주어진 과정을 반복한다.
  3. 결과를 리턴한다.