반응형
n을 이진수로 변환했을 때 1의 개수를 구해준 뒤, n + i(i > 0)를 이진수로 변환했을 때의 1의 개수와 동일하다면, 다음 큰 숫자입니다.
#include <string>
#include <vector>
using namespace std;
int countOne(int num) {
int cnt = 0;
while(num != 0) {
if(num & 1) cnt++;
num = num >> 1;
}
return cnt;
}
int solution(int n) {
int i = n + 1;
for(int c = countOne(n); c != countOne(i); i++);
return i;
}
반응형
'Algorithm' 카테고리의 다른 글
프로그래머스 : 게임 맵 최단거리 (0) | 2021.11.15 |
---|---|
프로그래머스 : 땅따먹기 (0) | 2021.11.15 |
프로그래머스 : 쿼드압축 후 개수 세기 (0) | 2021.11.15 |
프로그래머스 : 문자열 압축 (0) | 2021.11.15 |
프로그래머스 : 지형 이동 (0) | 2021.11.15 |