개발 공부/알고리즘 문제 풀이

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

종범2 2021. 4. 12. 15:00

문제

프로그래머스 월간 코드 챌린지 시즌 1 이진 변환 반복하기

 

programmers.co.kr/learn/courses/30/lessons/70129

 

코딩테스트 연습 - 이진 변환 반복하기

 

programmers.co.kr

 

언어

바스크립트(JavaScript)

 

접근 방법

  1. 재귀 함수를 작성하고 실행한다.
  2. 0을 제거한다.
  3. 제거 후 길이를 구하고 이를 이진 변환하여 재귀 함수를 호출한다.

코드

function solution(s) {
    const answer = [0, 0];
    console.log(s)
    transfrom(s, answer);
    return answer;
}

const transfrom =  (s, answer) => {
    const strWithoutZero = s.replace(/0/g,"");
    answer[0] ++;
    answer[1] += s.length - strWithoutZero.length;
    const len = strWithoutZero.length;
    if (len !== 1 ){
        transfrom(len.toString(2), answer);    
    }
}

복기

  1. 미리 생각하고 풀면 어렵지 않다.
  2. 이진변환은 toString(2)으로 할 수 있다.