문제풀이(Problem Solving)

프로그래머스, 다음 큰 숫자 : C++ [CPP]

게임이 더 좋아 2021. 11. 11. 20:15
반응형
728x170

 

어렵지 않았다.

다만 그냥 생각한대로 코딩할 수 있느냐?의 문제다.

 

 

https://programmers.co.kr/learn/courses/30/lessons/12911

 


 

#맞는 풀이

 

#include <string>
#include <vector>

using namespace std;

// 해당 숫자의 2진법 1의자리 숫자 반환함수.
int func(int n){
    int cnt = 0;
    string s = "";
    int div = n;
    while(1){
        int res = div%2;
        div /= 2;
        s = to_string(res) + s;
        if(div<2){
            s = to_string(div) + s;
            break;
        }
    }
    
    for(char c : s){
        if(c == '1'){
            cnt++;
        }
    }
    
    return cnt;
}

int solution(int n) {
    int answer = 0;
    int x = func(n);
    while(1){
        n++;
        if(func(n) == x){
            answer = n;
            break;
        }
    }
    
    return answer;
}

 

728x90
반응형
그리드형