개발새발 로그

[JS] 프로그래머스 : 다음 큰 숫자 본문

알고리즘

[JS] 프로그래머스 : 다음 큰 숫자

이즈흐 2023. 6. 12. 16:39

 

첫번째 풀이

-무작정 2진법으로 바꾸고 1의 갯수를 구한뒤 1을 더하면서 찾았다.

function solution(n) {
    var answer = n;
    var A='',B='';

    while(true){
        answer++;
        if(answer>n){
            var cnt1=0,cnt2=0;
            A=answer.toString(2);
            B=n.toString(2);
            for(var i=0;i<A.length;i++){
                if(A[i]=='1'){
                    cnt1++;
                }
                if(B[i]=='1'){
                    cnt2++;
                }
            }
            if(cnt1==cnt2){

                break;
            }

        }
    }
    return answer;
}

 

 

 

두 번째 풀이

-첫 번째 풀이와 마찬가지로 주어진 n에서 1을 더하면서 1의 갯수가 같을 때 까지 반복했다.

-위 풀이보다 조금더 간단하게 했다.

function solution(n) {
    let len=n.toString(2).split("").filter((x)=>x==1).length
    let result=0;
    let num=n;
    while(len!=result){
        num++;
        result=num.toString(2).split("").filter((x)=>x==1).length
        
    }
    return num;
}
728x90
반응형
LIST