프로그래머스 다음큰 숫자

2023. 11. 16. 20:52카테고리 없음

같이 공부하는 팀원분이 진행하시다가 어려우셨던 문제가있었다. 

 

처음에는 2진수로 입력값을 변환해서~~~1을 찾는 매우 복잡한 방식을 사용했으나

생각보다 더 간단하고 효율적인 방법이 있었는데,

Integer.bitCount 함수였다.

위 함수는 숫자를 2진수로 변환하여 1의 개수를 카운트 해주는 함수인데 이를 사용할시 

class Solution {
    public int solution(int n) {
        int answer = n;
        int originCnt = Integer.bitCount(n);
        while(true){
            int bigCnt = Integer.bitCount(++answer);
            if(bigCnt == originCnt){
                break;
            }
        }  
        return answer;
    }
}

입력 값을 반복문으로 증가시켜 다음bitCount가 같아지는 시점에 break를 걸어주니 쉽게 찾을수있었다