티스토리 뷰

728x90

문제 링크

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

 

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

 

programmers.co.kr

 

풀이

정규 표현식을 이용하여 간단하게 풀 수 있습니다.

 

1) regexp /1/g를 이용해 s에서 1만 뽑아줍시다.

2) 정답에 (s의 길이 - 위에서 구한 1들의 개수)를 더해줍니다.

3) 1들의 개수를 2진 변환합니다.

4) s가 1이 될 때까지 반복합시다.

 

 

정답 코드

function solution(s) {
    const ans = [0, 0];
    while(s !== '1'){
        const cnt = s.match(/1/g).length;
        ans[0]++;
        ans[1] += s.length - cnt;
        s = cnt.toString(2);
    }
    
    return ans;
}
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함