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

Kyle·2021년 1월 6일
1

problem solving

목록 보기
28/36

이진 변환 반복하기

문제

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

  1. 주어진 문자열에서 0을 제거한다.
  2. 제거한 문자열의 길이를 2진수로 변환한다.

위의 2과정을 이진 변환이라고 한다. 입력받은 문자 s의 길이가 1이 될 때 까지 이진변환을 반복하고 [반복한 횟수, 삭제한 0의 개수]를 반환하는 문제

해결방법

문제를 그대로 작성하면된다.

deleteZero: 삭제한 0의 개수
count: 이진 변환 횟수

  1. 문자열에서 0을 삭제한다.
  2. 0을 제거한 문자열의 길이를 2진수로 변환해 반복한다.

code

function solution(s) {
    let deleteZero =0
    let count =0
    while(s.length!==1){
        const originLen = s.length
        s=s.split('').filter(v=>v==='1').join('')
        const len = s.length
        deleteZero+=originLen-len
        s=len.toString(2)
        count++
    }
    return[count,deleteZero]
}

마무리

같은 프로그래머스 월간챌린지 시즌1의 문제였지만 어제하고는 비교하기도 민망하게 쉬웠던 문제였다. 왜 같은 lv2에 있는지 의문이다.
오늘 낮에 백준 풀어서 지쳤는데 편안하게 쉬운 문제여서 좋았다.

profile
Kyle 발전기

2개의 댓글

comment-user-thumbnail
2021년 1월 6일

카선생님 하루에 몇문제를 푸시는거예여~!!! 🙊👍🏻

1개의 답글