관리 메뉴

기억을 위한 기록들

[프로그래머스 lv 2 ] - 다음 큰 숫자 본문

Coding Test - cpp

[프로그래머스 lv 2 ] - 다음 큰 숫자

에드윈H 2021. 3. 29. 16:33

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>

using namespace std;
int GetCountOne(int num)
{
	string num1 = bitset<8>(num).to_string();
	int nCnt = 0;
	for (int i = 0; i<num1.size(); i++)
	{
		if (num1[i] == '1')
		{
			nCnt++;
		}
	}

	return nCnt;
}
int solution(int n) {

	int countNumber = GetCountOne(n);
	while (n++)
	{
		if (countNumber == GetCountOne(n))
			break;
	}
	return n;
}

 

 

 

참고 : 

m.blog.naver.com/PostView.nhn?blogId=sjjwjj&logNo=221502705650&proxyReferer=https:%2F%2Fwww.google.com%2F