Programmers 12911 다음 큰 숫자
in Algorithm
문제 링크 : 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;
}