Programmers 12911 다음 큰 숫자

로고 이미지

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12911

나의 풀이

입력받은 숫자를 2진수로 변환하여 1의 갯수를 파악하고, 입력받은 숫자를 1씩 증가시키며 그 숫자가 2진수로 변환했을 때 1의 갯수가 입력받은 숫자와 동일한지 확인하였다.

풀이 코드 : 12911 다음 큰 숫자

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    int one_count = 0;
    int temp = n;
    while(temp){
        if(temp%2 == 1) one_count++;
        temp/=2;
    }
    answer = n+1;
    while(true){
        temp = answer;
        int one = 0;
        while(temp){
            if(temp%2 == 1) one++;
            temp/=2;
        }
        if(one == one_count) return answer;
        answer++;
    }
    return answer;
}

채점결과

42586


© 2020. All rights reserved.

Powered by Hydejack v8.4.0