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

조준형·2021년 8월 5일
0

Algorithm

목록 보기
52/142
post-thumbnail

🔎 삼각 달팽이

❓ 문제링크

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

📄 제출 코드

function solution(s) {
    let zero = 0;
    let cnt = 0;
    while (s !== '1') {
        let tmpLen = [...s].reduce((total, string) => {
            // console.log(`s : ${s}, total : ${total}, string: ${string}`)
            if (string == '0') {
                zero++;
                return total;
            }
            return total+1;
        }, 0);
        s = tmpLen.toString(2);
        cnt++;
    }
    return [cnt, zero];
}
let s = "110010101001";
console.log(solution(s));
// 변환횟수, 제거된 0 개수.

문제에 적힌대로 그냥 반복하면되는 문제였다.
s에서 0있으면 지우고, zero횟수 세고, 지우고나면 s의 길이만큼 이진수로 변환해 다시 이작업을 해서 1이될때까지 이 작업을 반복.

profile
깃허브 : github.com/JuneHyung

0개의 댓글