Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Today
Total
관리 메뉴

차차로그

[JS] 월간 코드 챌린지 시즌1 > 이진 변환 반복하기 본문

코딩테스트

[JS] 월간 코드 챌린지 시즌1 > 이진 변환 반복하기

차차한 2022. 9. 8. 12:30

function solution(s) {

    var zero = 0;
    var count = 0;
    
    while(s.length > 1){
        
     for(var i = 0; i < s.length; i++){

        if(s[i] == 0){
            zero++;
        }  
     }
     s = s.split("0").join("").length.toString(2);
     count++;   
   }      
    return [count, zero];
}

문자열에 0을 없앤 후 문자열의 길이를 2진법으로 바꿔 최종적으로 1만 남기는 문제다.

계속 반복을 해야하기때문에 while 반복을 했고 최종적으로 1만 남으면 s의 길이가 1이 되는 것이기에 조건은 s.length > 1 로 설정했다.

문자열 중에 0이 있으면 zero를 1씩 올려주었고, 문자열 전체에서 0을 찾아본 후에, 0을 기준으로 split해 1만 남은 배열로 만든 후 join으로 다시 문자열로 만들어주고 그 길이를 2진법으로 바꿔줬다.

이러한 과정을 할 때마다 count도 1씩 올려줬다.

최종적으로 [count, zero]를 리턴해주면 끝!

Comments