개발/알고리즘

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

daisy-day 2021. 1. 1. 14:09

문제

 

풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int countOne(int n)
{   
    vector<int> v;
    while(n > 1)
    {
        v.push_back(n % 2);
        n /= 2;
    }

    if( n == 1)
    {
        v.push_back(1);
    }
    
    return count(v.begin(), v.end(), 1);
}

int solution(int n) {
    int cnt = countOne(n);
    int answer(0);
    n++;
    while(1)
    {
        if(cnt == countOne(n))
        {
            answer = n;
            break;
        }
        else
            n++;
    }
      
    return answer;   
}

 

결과

 

걸린시간

30분