[C++로 풀이] 다음 큰 숫자⭐⭐
카테고리: Programmers
태그: Coding Test Algorithm
📌 다음 큰 숫자
난이도 ⭐⭐
🚀 문제
🚀 내 풀이 ⭕
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
int countOfN = 0;
int temp = n;
// countOfN -> n의 1의 개수 구하기
while(temp > 0)
{
if (temp % 2 == 1)
countOfN++;
temp /= 2;
}
// n에서 1씩 더하면서 1의 개수가 countOfN에 일치하는 수를 찾는다.
while(true)
{
int count = 0;
temp = ++n;
while(temp > 0)
{
if (temp % 2 == 1)
count++;
temp /= 2;
}
if (countOfN == count)
break;
}
answer = n;
return answer;
}
n
이 이진수일 때의 1의 개수는 n
이 몫이 0이 될 때까지 2로 계속 나눈 것의 나머지가 1인 경우를 센 것이 된다. 십진수에서 이진수 변환할 때 나머지 1 나오는 것 세기!!
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기