코딩테스트/프로그래머스

[레벨 2] 다음 큰 숫자

marmelo12 2021. 9. 27. 17:28
반응형
#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    int nCount = 0,nextNumCount = 0;
    int temp = n,nextNum = n;
    while(temp > 0)
    {
        if(temp % 2 == 1)
            ++nCount;
        temp /= 2;
    }
    int i = 0;
    while(true)
    {
        if(nCount == nextNumCount)
        {
            answer = nextNum;
            break;
        }
        else
            nextNumCount = 0;
        nextNum++;
        temp = nextNum;
        while(temp > 0)
        {
            if(temp % 2 == 1)
                ++nextNumCount;
            temp /= 2;
        }
        ++i;
    }
    return answer;
}
반응형