[프로그래머스] Level.2 연습문제- 다음 큰 숫자
2021. 1. 12. 18:49ㆍAlgorithm/프로그래머스
코딩테스트 연습 - 다음 큰 숫자
자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니
programmers.co.kr
나는 while문을 중복해서 썼지만 따로 함수를 구현해서
호출해서 사용하면 더욱 깔끔한 코드로 짤수있다
이진수를 구하는 방법만 알면 굉장히 쉬운 문제라고 생각한다.
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
int one=0;
int number=n,num=n;
int cache=0,temp=0;
while(1){
cache=n%2;
if(cache==1) one++;
n=n/2;
if(n==0) break;
}
while(1){
cache=0, temp=0;
num=++number;
while(1){
cache=num%2;
if(cache==1) temp++;
num=num/2;
if(num==0)break;
}
if(one==temp) break;
}
answer=number;
return answer;
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level.2 String/Date- 이름에 el이 들어가는 동물 찾기 (0) | 2021.01.13 |
---|---|
[프로그래머스] Level.2 연습문제-최댓값과 최솟값 (0) | 2021.01.12 |
[프로그래머스] Level.2 월간코드챌린지 시즌 1-삼각 달팽이 (0) | 2021.01.12 |
[프로그래머스]Level.2 String,Date- 루시와 엘라찾기 (0) | 2021.01.12 |
[프로그래머스]Level.2 GROUP BY -입양 시각 구하기(1) (0) | 2021.01.12 |