본문 바로가기
::public/코딩테스트 풀이

다음 큰 숫자

by 해맑은욱 2019. 9. 5.
*다음 큰 숫자 (while문) 
자연수 n, 다음 큰 숫자 구하기. 
2진수로 변환했을때 1의 갯수가 같은 수중에 최솟값. 
 
#include <iostream>
#include <vector>
 
using namespace std
 
int resultCount(int n) 
    vector v; 
    while(n > 0
    { 
        v.push_back(n % 2); 
        n /= 2
    } 
 
    int count = 0
    vector::iterator iter; 
    for(iter = v.begin(); iter != v.end(); ++iter) 
    { 
        if(*iter == 1
            count++
    } 
    return count; 
 
int solution(int n) { 
    int answer = 0
 
    int i = 0
    int k = 0
 
    i = resultCount(n); 
 
    while(true
    { 
        n++
        k = resultCount(n); 
 
        if(i == k) 
            break
    } 
 
    return n; 
 
다른 방식 
#include <iostream> 
 
using namespace std
 
int resultCount(int n) 
    int count = 0
    while(n > 0
    { 
        count += n % 2
        n /= 2
    } 
 
    return count; 
 
int solution(int n) { 
    int answer = 0
 
    int i = 0
    int k = 0
 
    i = resultCount(n); 
 
    while(true
    { 
        n++
        k = resultCount(n); 
 
        if(i == k) 
            break
    } 
 
    return n; 
 
cs

'::public > 코딩테스트 풀이' 카테고리의 다른 글

직사각형 별 찍기  (0) 2019.09.05
약수 더하기  (0) 2019.09.05
문자열 중에 같은 문자 확인  (0) 2019.09.05
점프 슈트  (0) 2019.09.05
프로그래머스 문제 풀이  (0) 2019.08.12