본문 바로가기

코딩 테스트/프로그래머스 코딩테스트

다음 큰 숫자

#include <string>
#include <vector>
#include <iostream>
#include <stdio.h>
#include <algorithm>

using namespace std;

int getBinOneAmount(int n)
{
    vector<int> binVector;
    
    // 이진법 변환
    int bin = 0;
    
    while(n >= 1)
    {
        bin = n % 2;
        n = n / 2;
        
        // cout << "n = " << n << endl;
        
        binVector.push_back(bin);
    }
    
    int cnt = 0;
    
    for(int i=binVector.size()-1; i>=0; i--)
    {
        // printf("%d", binVector[i]);
        
        if(binVector[i] == 1)
        {
            cnt++;
        }
    }
    
    return cnt;
}

int solution(int n) {
    
    int answer = 0;
    int binN_Num = getBinOneAmount(n);    
    
    printf("binN_Num = %d\n", binN_Num);
    
    while(true)
    {
        n++;
        answer = n;
        
        int binA_Num = getBinOneAmount(answer);
        
        if(binN_Num == binA_Num)
        {
            break;
        }        
    }
    
    return answer;
}

'코딩 테스트 > 프로그래머스 코딩테스트' 카테고리의 다른 글

[미해결] 괄호 회전하기  (0) 2022.11.27
다리를 지나는 트럭  (0) 2022.11.27
숫자의 표현  (0) 2022.11.22
[1차] 다트 게임  (0) 2022.10.29
JadenCase 문자열 만들기  (0) 2022.10.04