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

Seulguo·2022년 10월 4일
0

Algorithm

목록 보기
175/185
post-thumbnail

🐣 문제

링크 : 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;
}

0개의 댓글