Hyundolog

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

문제 풀이/프로그래머스

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

hyundol97 2023. 5. 28. 13:26

문제

 

 


 

 

풀이

1차

function solution(s) {
    let times = 0;
    let total = 0;
    
    while(s !== "1") {
        let temp = s.split('').filter((value) => value === '1');
        let zero_cnt = s.length - temp.length;
        
        times++;
        total += zero_cnt;
        s = (temp.length).toString(2);
    }
    
    return [times, total];
}

 

 

2차

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

 

 


 

리뷰

  • match() 메소드를 통해 정규식 활용 풀이
Comments