[프로그래머스] 코딩테스트 연습 - 53

krkorklo·2022년 2월 14일
0

프로그래머스

목록 보기
53/78

level 2 - 이진 변환 반복하기

0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.
x의 모든 0을 제거합니다.
0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요.

입출력 예시
s : "110010101001"
-> [3,8]

function solution(s) {
    var answer = 0;
    var zero = 0;
    do {
        var arr = s.split("");
        zero += arr.filter((str) => str == '0').length;
        s = arr.filter((str) => str == '1').join("");
        s = s.length.toString(2);
        answer++;
    } while(s != 1)
    return [answer, zero];
}

자꾸 num.toString(2)로 이진수 변환 할 수 있는거 까먹는다.
기억력이 나빠져서 몸이 고생하는 중

0개의 댓글