본문 바로가기
자료구조 & 알고리즘

프로그래머스 다음 큰 숫자 - 자바스크립트 풀이

by PARADISE247 2024. 12. 8.
반응형
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

👀 toString 

numObj.toString([radix]);
// ex
let num = 7;
console.log(num.toString(2)); // -> 111

radix: 진수를 나타낸다. (2~36 범위에 해당하지 않는 수를 입력 시 RangeErro가 발생한다.)

반환값: Number 객체를 나타내는 문자열

function solution(n) {
    const counts = n.toString(2).replaceAll("0","").length;
    let num = n + 1;
    
        
    while(true){
        if(counts === num.toString(2).replaceAll("0","").length){
            return num;
            break;
        } else {
            num += 1;
        }
    }
}

toString을 이용하여 인자로 받아온 n을 2진수로 변환하였다

const counts = n.toString(2).replaceAll("0","").length;

다음 큰 수 변수를 num이란 이름으로 선언한다.

let num = n + 1;

while문을 돌면서 주어진 n에 1을 하나씩 더하며 해당 숫자를 2진수로 변환 시 1의 개수가 n을 2진수로 변환한 경우의 1의 개수와 동일한지 판단한다. 동일하다면 해당 숫자를 반환한다. 

while(true){
	if(counts === num.toString(2).replaceAll("0","").length){
		return num;
		break;
	} else {
		num += 1;
	}
}
반응형