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

dev_jo·2022년 8월 27일
0

알고리즘 풀이

목록 보기
17/25
post-custom-banner

문제

다음 큰 숫자



문제풀이

var m = [];

// 2진수 변환
function convertBinary (num) {
    // 2진수 변환
    var binary = [];
    while (num != 0) {
        var quote = num % 2;
        num = parseInt(num / 2);
        binary.push(quote);
    }     
    // 변환 종료
    return binary;
}

// 재귀함수
function convertRecursive (strNum, cnt) {
    var nums = [];
    var sCnt = 0;
    strNum++;
     m = convertBinary(strNum);
    for (var i = 0; i < m.length; i++) {
        if(m[i] == 1) sCnt++;
    }
    if (sCnt != cnt) {
         m = [];
        convertRecursive(strNum, cnt);
    } else {
      return;
    }
}

function solution(n) {
    var answer = 0;
    var cnt = 0;
    var strNum = convertBinary(n);
    
    for (var i = 0; i < strNum.length; i++) {
        if(strNum[i] == 1) cnt++;
    }
    
    convertRecursive(n, cnt);
    m = m.reverse();
    var binary = m.join('');
    var decimal = parseInt(binary, 2); // 10진수변환
 
    return decimal;
}
profile
To be a better developer!!
post-custom-banner

0개의 댓글