Programming

[알고리즘] 프로그래머스 다음 큰 숫자

jay-dev 2023. 10. 12. 20:39

프로그래머스 문제링크

 

프로그래머스

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

programmers.co.kr

 

Try / Solution

function countOne(n) {
    let count = 0
    let binaryArr = n.toString(2).split('');
    for(let i = 0; i < binaryArr.length; i++) {
        if (binaryArr[i] == 1) { count++; }
    }
    return count; 
}

function solution(n) {
    let result = n;
    while(true) {
        result++; 
        if(countOne(result) == countOne(n)) {
            return result;
        }
    }
}

n을 2진수로 바꾼 뒤 1의 개수를 찾는 함수 countOne

n에 1씩 더한 뒤 2진수로 바꿔 1의 개수를 찾아 n과 같은 1의 개수를 갖는 첫번째 수를 찾음

 

Advancd Solution

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);
}

재귀와 정규표현식을 활용한 풀이

'Programming' 카테고리의 다른 글

[알고리즘] 프로그래머스 점프와 순간 이동  (0) 2023.10.16
[알고리즘] 프로그래머스 카펫  (0) 2023.10.13
[TIL] REST API, GraphQL  (0) 2023.10.06
[TIL] 프론트엔드 성능 최적화  (0) 2023.10.01
[TIL] useEffect  (1) 2023.09.30