코딩테스트

[프로그래머스] 이진 변환 반복하기 (JS)

여유로운 프론트엔드 개발자 2025. 1. 1. 14:35

문제

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이

  (1) 문자열 s에서 0의 갯수를 구하기 위해 배열로 변환 -> filter 메서드를 이용하여 length를 구한다.
  (2) 1만 추출하여 2진수로 변한하기 위해 toString 메서드를 사용한다.
  (3) s가 1이 될 때까지 반복한 후 2진수 변환 횟수, 지운 2의 총 갯수를 반환한다.

function solution(s) {
    let tryCnt = zeroCnt = 0;
    
    while (s !== "1") {
        s = s.split("");
        zeroCnt += s.filter(num => num === "0").length;
        s = s.filter(num => num === "1").length.toString(2);
    
        tryCnt++;
    }
    
    return [tryCnt, zeroCnt];
}

 

결론

레벨2의 월간 코드 챌린지 문제이다.

toString을 사용하여 10진수를 2진수로 변환할 줄 알면 쉽게 해결할 수 있다.