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

dongwon·2021년 5월 6일
0

프로그래머스-Level 2

목록 보기
32/33

문제

이진 변환 반복하기 https://programmers.co.kr/learn/courses/30/lessons/70129

해결

  1. replace, 정규식을 이용해 0 제거.
  2. 제거된 0의 개수는 이전 문자열의 길이 - 제거된 문자열의 길이로 계산했습니다.
  3. toString(2)를 이용하여 2진수로 바꾸고 결과를 s에 저장하여 무한 루프를 돌고 1이 됐을 때 break 했습니다.

코드

function solution(s) {
  let zero_count = 0;
  let trans_count = 0;

  while (true) {
    trans_count++;
    const whole_len = s.length;

    s = s.replace(/0/g, "");
    const rm_len = s.length;
    zero_count += whole_len - rm_len;

    if (s === "1") break;

    const c = s.length;
    s = c.toString(2);
  }

  return [trans_count, zero_count];
}
profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글