Hyundolog

[Programmers] Lv2. 이진 변환 반복하기 (JavaScript) 본문

문제 풀이/프로그래머스

[Programmers] Lv2. 이진 변환 반복하기 (JavaScript)

hyundol97 2023. 11. 12. 18:08

문제

 

 


 

 

풀이

1차

function solution(s) {
    let str = s;
    let cnt = 0;
    let sum = 0;
    
    while(str.length > 1) {
        let one_arr = [];
        
        for(let i = 0; i < str.length; i++) {
            if(str[i] === '1') {
                one_arr.push('1');
            } else {
                sum ++;
            }
        }
        str = one_arr.length.toString(2);
        cnt ++;
    }
    
    return [cnt, sum];
}

 

 

2차

function solution(s) {
    let answer = [0,0];
    
    while(s.length > 1) {
        answer[0]++;
        answer[1] += (s.match(/0/g)||[]).length;
        s = s.replace(/0/g, '').length.toString(2);
    }
    
    return answer;
}

 

 


 

리뷰

  • match와 replace를 활용한 조건, 배열 값 변환 시도 필요
Comments