알고리즘/C++

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

지휘리릭 2020. 3. 8. 16:23
#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    int n_one_cnt = 0, temp = n;
    
    while(temp > 0){
        if(temp%2 == 1) n_one_cnt += 1;
        temp = temp/2;
    }
    
    int temp_one_cnt;
    int num = n;
    
    while(true){
        temp_one_cnt = 0;
        num += 1;
        temp = num;
        while(temp > 0){
            if(temp%2 == 1) temp_one_cnt += 1;
            temp = temp/2;
        }
        if(temp_one_cnt == n_one_cnt){
            return num;
        }
    }
    return answer;
}