본문 바로가기

프로그래머스/구현

[문자열] 프로그래머스 '이진 변환 반복하기' - js

반응형

1. 문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 코드

문제가 안풀리면 제발 문제를 다시 꼼꼼히 읽어보자~~! ㅠㅠ 0을 제거한 문자열의 길이를 2진수로 변환하는 것이였는데, 그냥 0 제거한 문자열을 2진수로 변환하려니 당연히 안되지!!!! 또 마음 급하게 푸려는 습관이 스멀스멀 올라온다!! 멈춰!

function solution(s) {
	// 변환 횟수
    let count = 0;
    // 0 제거 합
    let delZero = 0;
    let sum = 0;
    
    while(s.length!==1){
    	// 원래 s 길이
        sum = s.length;
        // 0 기준 split 후 join
        s = s.split("0").join('');
        delZero += sum - s.length;
        // 2진수 변환
        s = s.length.toString(2);
        count ++;
    }
    
    
    return [count, delZero];
}

 

+ 숫자 진수 변환 

let decimal = 1023; 

let binary = decimal.toString(2);	// 2진수로
let octal = decimal.toString(8);	// 8진수로
let hex = decimal.toString(16);		// 16진수로
반응형