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

2020. 6. 30. 17:39프로그래머스/LEVEL 2

class Solution {
    public int solution(int n) {
        int answer = 0;
        int oneCount = 0;
        
        String biN = Integer.toBinaryString(n);
        
        for(int i=0; i<biN.length(); i++){
            if(biN.charAt(i)=='1'){
                oneCount++;
            }
        }
        
        int target = n+1;
        
        while(true){
            int targetCount =0;
            String tarBin = Integer.toBinaryString(target);
            
            for(int i=0; i<tarBin.length(); i++){
                if(tarBin.charAt(i)=='1'){
                    targetCount++;
                }
            }
            
            if(targetCount==oneCount){
                answer = target;
                break;
            }else{
                target++;
            }
        }
        return answer;
    }
}

1. 2진수로 바꿔서 1갯수비교를 위해 Integer.toBinaryString() 메소드를 이용하여 풀었다.