링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12911
n은 1,000,000 이하의 자연수라는 조건이 있으므로, string으로 이진 변환을 시켜주었다.
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int convert(int n){
string s = "";
int cnt = 0;
while(n > 0){
if(n % 2 == 0) s += "0";
else s += "1";
n /= 2;
}
reverse(s.begin(), s.end());
for(char c : s){
if(c == '1') cnt ++;
}
return cnt;
}
int solution(int n) {
int answer = n + 1;
while(1){
if(convert(n) == convert(answer)) break;
else answer ++;
}
return answer;
}