반응형

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

 

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

 

programmers.co.kr

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

문제를 보면

 

1. 2진법으로 변환된 숫자가 String으로 제시된다.

2. 제시된 String에서 "0"을 제거한다.

3. "0"을 제거하고 남은 String의 길이를 2진법으로 변환된 String으로 바꿔준다.

4. 2진법 변환된 수가 "1" 보다 크면 계속 반복한다.

5. 0이 제거된 횟수와 제거된 0의 개수를 [횟수, 갯수] 형태로 return 한다.

 

 

내 식은 이렇다.

 

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

 

아직 쌈박한 답안은 안 올라온 것 같다.

반응형

+ Recent posts