프로그래머스 다음큰 숫자
2023. 11. 16. 20:52ㆍ카테고리 없음
같이 공부하는 팀원분이 진행하시다가 어려우셨던 문제가있었다.
처음에는 2진수로 입력값을 변환해서~~~1을 찾는 매우 복잡한 방식을 사용했으나
생각보다 더 간단하고 효율적인 방법이 있었는데,
Integer.bitCount 함수였다.
위 함수는 숫자를 2진수로 변환하여 1의 개수를 카운트 해주는 함수인데 이를 사용할시
class Solution {
public int solution(int n) {
int answer = n;
int originCnt = Integer.bitCount(n);
while(true){
int bigCnt = Integer.bitCount(++answer);
if(bigCnt == originCnt){
break;
}
}
return answer;
}
}
입력 값을 반복문으로 증가시켜 다음bitCount가 같아지는 시점에 break를 걸어주니 쉽게 찾을수있었다