이번에 풀어본 문제는
프로그래머스 다음 큰 숫자 입니다.
class Solution {
public int solution(int n) {
int answer = 0;
int bitCount = Integer.bitCount(n);
for (int i = n + 1; i <= 1000000; i++) {
int tmpCnt = Integer.bitCount(i);
if (tmpCnt == bitCount) {
answer = i;
break;
}
}
return answer;
}
}
n보다 큰 자연수 중, 2진수로 변환했을 때 1의 개수가 n과 동일한 가장 작은 수를 찾는 문제입니다.
n보다 큰 자연수를 모두 탐색하여 2진수로 변환 후, 1의 개수를 카운트하여 풀이했는데, 다 풀고 다른 풀이를 보다보니 bitCount라는 함수가 있더라구요!
이 함수를 사용하면 보다 간략하게 해결할 수 있습니다.