다음 큰 숫자

hyuri·2023년 10월 12일
0

코딩테스트 연습

목록 보기
57/70

내가 작성한 답

function solution(n) {
    let number = n+1;
    const oneNumber = (n.toString(2).match(/1/g) || []).length;    
    while((number.toString(2).match(/1/g) || []).length !== oneNumber){
        number++;
    }
    return number;
}

다른 답

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);
}
function nextBigNumber(n) {
    var size = n.toString(2).match(/1/g).length
    while(n++) {
        if(size === n.toString(2).match(/1/g).length) return n
    }
}

해석

나는 while문 조건을 피하기 위해 n+1을 하고 나서 그 다음에 1의 개수가 똑같을 때까지 number를 증가시켰다.

profile
개발자가 되고 싶은 지망생

0개의 댓글