본문 바로가기

CS/알고리즘

[230326] 다음 큰 숫자

반응형

 

 

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 

 

내 풀이

2진수로 변환 후 1의 개수를 구하는 식이 반복되어서 함수를 생성하였다.

n+1 숫자부터 보고 2진수 변환 후 1의 개수가 동일하다는 조건을 만족하는 숫자가 나오는 즉시 그 숫자를 해답으로 반환한다.

function solution(n) {
    const binaryN = getOneNum(n);
    let temp = n;
    
    while(true) {      
        const binaryTemp = getOneNum(++temp);
        if(binaryTemp === binaryN) return temp; 
    }
}

const getOneNum = (num) => {
    return num.toString(2).split('1').length - 1
}
반응형

'CS > 알고리즘' 카테고리의 다른 글

[230326] 짝지어 제거하기: stack  (0) 2023.03.26
[230326] 영어 끝말잇기  (0) 2023.03.26
[230326] 숫자의 표현  (0) 2023.03.26
[230325] 3진법 뒤집기: parseInt, toString  (0) 2023.03.26
[230325] 이진 변환 반복하기  (0) 2023.03.26