[#21][알고리즘] 다음 큰 숫자

프로그래머스 > 다음 큰 숫자

문제 링크(https://programmers.co.kr/learn/challenge_codes/170)

















C++풀이
#include<iostream>
 
using namespace std;
 
int countOne(int num){
  int ans=0;
    while(num!= 1){
      if(num%2 == 1){
         ans++;
          }
    num /= 2;
  }
  return ans+1;
}
 
int nextBigNumber(int n)
{
  int answer= n+1;
  int count = countOne(n);
 
  for(int i = answer; i <= 1000000; i++){
    if(count == countOne(i)){
        answer = i;
        break;
    }
  }
  return answer;
}
int main()
{
    int n=78;
    
    //아래는 테스트 출력을 위한 코드입니다.
 
    cout<<nextBigNumber(n);
}
 
cs
1. countOne() 함수로 2진수 1의 개수를 반환한다.
 : num%2 가 1일 때 ans++

2. nextBigNumber() 함수로 입력받은 n의 1의 개수와 같은 수 찾는다.
 : 찾으면 종료


댓글

가장 많이 본 글