C++/programmers 코딩테스트(level 2) C++

[C/C++] programmers Level 2 다음 큰 숫자

CE : 하랑 2023. 10. 6. 21:45

 

 

 

 

코드

 

using namespace std;

int Binarycount1(int N){ // 2진수 중 1의 갯수 구하는 함수
    
    int count1=0; // 2진수 안의 1의 갯수
    
    while(N>0){
        
        if(N%2==1){
            count1++;
        }
        
        N=N/2;
    }
    
    return count1;
}


int solution(int n) {
    int answer = Binarycount1(n); // n -> 2진수 변환 후 1의 갯수 저장
    
    while(true){
        n++; // 조건1 n보다 큰 자연수 -> n값 증가
        
        if(Binarycount1(n)==answer){ // 조건2 2진수 변환 후 1의 갯수 같아야 함
            break;
        }
    }
    
    return answer=n;
}