본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 "다음 큰 숫자"

by 시아나 2022. 5. 1.

https://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>

using namespace std;

int check_one(int n) {
    int count = 0;
    while (n) {
        if (n % 2 == 1)count++;
        n /= 2;
    }
    return count;
}

int solution(int n) {
    int count = check_one(n);
    for (int i = n + 1; i < 2000000; i++) {
        if (count == check_one(i)) {
            return i;
        }
    }
}