💡Problem Solving/Programmers

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

gom20 2021. 10. 18. 20:54

#문제

https://programmers.co.kr/learn/courses/30/lessons/12911

 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

 

#소스코드

class Solution {
    public int solution(int n) {
        int oneCnt = getOneCnt(Integer.toBinaryString(n));
        int next = n+1;
        while(true){
            if(getOneCnt(Integer.toBinaryString(next)) == oneCnt) break;
            next++;
        }
        
        return next;
    }
    
    public int getOneCnt(String binaryNum){
        int oneCnt = 0;
         for(int i = 0; i < binaryNum.length(); i++){
            if(binaryNum.charAt(i) == '1') oneCnt++;
        }
        return oneCnt;
    }
}