반응형
이진 변환 반복하기 ( 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]
}
- 변환 횟수
count
, 제거된 0의 개수를 담을 변수countZero
를 만든다. - s가 1이 될 때 까지 반복하며 문제에서 주어진 과정을 반복한다.
- 결과를 리턴한다.