2진법 나오길래 Integer.toBinaryString()
메소드 써야지!! 하고 신나게 작성했다!
그런데 인텔리제이에서 자동으로 추천해주는 메소드 중에 Integer.bitCount()
메소드가 있길래 저건 뭘까 하고 넘어갔었는데 그게 2진법으로 숫자를 읽어서 1의 개수를 세주는 메소드였다...... 🥺... 이런 것도 있구나.... 자바 짱...
그래서 두 개 다 써봤다!
class Solution {
public int solution(int n) {
String binary = Integer.toBinaryString(n);
int num = binary.replace("0", "").length();
int result = n + 1;
while (true) {
int one = Integer.toBinaryString(result).replace("0", "").length();
if (one == num) break;
result++;
}
return result;
}
}
class Solution {
public int solution(int n) {
int count = Integer.bitCount(n);
int result = n + 1;
while (true) {
int one = Integer.bitCount(result);
if (one == count) break;
result++;
}
return result;
}
}