[프로그래머스] 다음 큰 숫자 - Java
2진수로 변환해주는 함수 toBinaryString, 비트수를 세주는 함수 bitCount
문제
아이디어
자연수 n을 2진수로 변환했을 때 ‘1’ 비트 갯수와 같은 갯수를 가지는 수를 찾으면 된다.
처음에는 직접 2진수 변환, 비트 갯수 세는 함수를 직접 구현했다.
근데 내장 메서드가 있었고.. (참고로, Long 타입에도 존재하는 메서드다)
- 2진수 변환 :
Integer.toBinaryString(n)
- 비트 세기 :
Integer.bitcount(n)
(1의 개수를 반환한다.)
직접 구현한 것보다 월등히 빠르다 ㅎ.. 강추..
전체 코드
1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int solution(int n) {
int nxt = n+1;
int cnt = Integer.bitCount(n);
while (true) {
if (cnt == Integer.bitCount(nxt)) break;
nxt++;
}
return nxt;
}
}
This post is licensed under CC BY 4.0 by the author.