본문 바로가기

프로그래머스/비트마스킹

다음 큰 숫자

728x90

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

 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

#include <string>
#include <vector>
#include <bitset>
#include <iostream>
using namespace std;


int ijin(int num ){
    int i =1;
    int count=0;
    while(i<=num){
        if((num&i)){
            count++;
        }
        i= i<<1;

    }

    return count;
}

int solution(int n) {
    int answer = 0;
    int count =0;
    int cmp = n;
    int ncount = ijin(n);
    while(count!=ncount){
        cmp ++;
        count = ijin(cmp);
   }
    answer = cmp;
    return answer;
}

'프로그래머스 > 비트마스킹' 카테고리의 다른 글

후보키  (0) 2021.01.22