[프로그래머스] 다음 큰 숫자(javascript)

프린이·2020년 11월 25일
0

  • 제 코드는 최선의 방안은 아닙니다.
  • 단순히 기록용, 공유용이니 이 점 보실 때, 참고바랍니다.

🔗 문제 링크

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

📙 내가 생각한 풀이 과정

  • 주어진 n을 이진수로 나타냈을 때, 해당 이진수의 1의 갯수와 n보다 큰 값들 중 값을 이진수로 표현했을 때, n의 1의 갯수와 같은 갯수를 가진 값 중 가장 작은 값이 무엇인지 찾는 과정을 거쳐야겠다고 생각함.

📝 답안 코드

function solution(n) {
    var tmp = trans(n);
    n++;
    while(tmp != trans(n)){
        n++;
    }
    return n;
    
    function trans(n){
        var ret = 0;
        while(n != 0){
            if(n%2 == 1){
               ret++;
           }
            n = Number.parseInt(n/2);
        }
        return ret;
    }
}
profile
주니어 프론트엔드개발자

0개의 댓글