프로그래머스 - [Level 2] 다음 큰 숫자(JAVASCRIPT)

less than 1 minute read

프로그래머스 다음 큰 숫자

카테고리 : 시뮬레이션

풀이 과정은 간단하다.

1) 2진수로 변환
2) couting 함수로 1 갯수 return
3) n  target 넘버 = n+1 초기 값으로
설정하고 n과 target 넘버의 1 갯수가 같을 때까지
target 넘버의 크기를 1 증가시킨다.


소스 코드

function solution(n) {
    const toBinary=(num)=>{
        let str="";
        while(num){
            str+=(num%2+"");
            num=Math.floor(num/2);
        }
        return str.split("").reverse().join("");
    }

    const counting=(num)=>{
        return num.split("").filter(a => a==="1").length;
    }
    
    const searchNextNum=(num)=>{
        let matchNum=num+1;
        while(counting(toBinary(num))!==counting(toBinary(matchNum))) matchNum++;
        return matchNum;
    }
    
    return searchNextNum(n);
}


다른 사람의 풀이

function solution(n,a=n+1) {
    return n.toString(2).match(/1/g).length == a.toString(2).match(/1/g).length ? a : solution(n,a+1);
}

Leave a comment