[Programmers] 이진 변환 반복하기 - JavaScript

Joosi_Cool·2023년 2월 2일
0

Programmers

목록 보기
3/98
post-thumbnail
post-custom-banner

문제 설명

설계 과정

  1. 0인것은 ''로 replace -> 0은 제거
    -> 0의 개수 += (바꾸기 전의 길이 - 바꾼 후 길이)
  2. s.길이.toString(2) -> 이진수로 변화
  3. s = '1'인지 check
    -> 맞다면 return
    -> 아니라면 위부터 다시 시작

풀이 코드

function solution(s) {
  //0 => 변화 카운트, 1 => 0 카운트
  var answer = [0, 0];
  var beforeLen;
  while (s !== "1") {
    beforeLen = s.length;
    //0인것은 삭제
    s = s.replaceAll("0", "");
    // 삭제한 0의 개수 카운트
    answer[1] += beforeLen - s.length;
    answer[0]++;

    s = s.length.toString(2);
  }
  return answer;
}

결과

profile
집돌이 FE개발자의 노트
post-custom-banner

0개의 댓글