https://school.programmers.co.kr/learn/courses/30/lessons/12911
count 함수는 주어진 수를 2진수로 변환했을 때의 1의 개수를 반환한다.
주어진 n의 1의 개수를 저장해놓고,
n+1부터 계속 check해보며 같은 수가 나올 경우 빠져나오면 된다.
#include <string>
#include <vector>
using namespace std;
int count(int n)
{ //나머지 1일 떄마다 cnt++
int cnt=0;
while(n>0)
{
if(n%2==1)
cnt++;
n=n/2;
}
return cnt;
}
int solution(int n) {
//주어진 n을 2진수로 변환했을 때의 1의 개수 저장
int n_cnt=count(n);
int answer=n;
int answer_cnt=0;
while(1)
{
answer++;
answer_cnt=count(answer);
if(answer_cnt==n_cnt)
break;
}
return answer;
}
'문제를 풀자' 카테고리의 다른 글
[프로그래머스] 수식 최대화(C++) (0) | 2022.08.18 |
---|---|
[프로그래머스] 피로도(C++) (0) | 2022.08.17 |
[프로그래머스] 2 x n 타일링(C++) (0) | 2022.08.17 |
[프로그래머스] 올바른 괄호(C++) (0) | 2022.08.16 |
[프로그래머스] 섬 연결하기(C++) (0) | 2022.08.16 |
댓글