이진 변환 반복하기

hyuri·2023년 10월 6일
0

코딩테스트 연습

목록 보기
55/70

내가 작성한 답

function solution(s) {
    let zero = 0;
    let count = 0;
    do {
        let one = 0;
        const number = s;
        number.split('').filter(value => {
            value === '1' ? one++ : zero++;
        });
        s = one.toString(2);
        count++;
    } while(s !== '1');

    return [count, zero];
}

다른 답

function solution(s) {
    var answer = [0,0];
    while(s.length > 1) {
        answer[0]++;
        answer[1] += (s.match(/0/g)||[]).length; // ||[]를 넣지 않으면 null 값이라 length를 사용할 수 없음.
        s = s.replace(/0/g, '').length.toString(2);
    }
    return answer;
}

해석

정규표현식...!!!
나는 단순하게 반복하기만 했다.
정규표현식을 이용하면 더욱 편리하고 가독성도 좋아진다...

profile
개발자가 되고 싶은 지망생

0개의 댓글