programmers.co.kr/learn/courses/30/lessons/12911
굉장히 간단한 문제이지만 기억할만한 메서드가 있어서 설명을 작성하자면
Integer.bitCount(n) 이라는 메서드이다.
n을 2진수로 변환 후 1의 개수를 리턴해주는 메서드이다.
1. 사용한 코드
class Solution {
public int solution(int n) {
int oneCount = Integer.bitCount(n);
while(true) {
if(Integer.bitCount(++n) == oneCount) break;
}
return n;
}
}
2. 사용하지 않은 코드 (반복문을 통해서 직접 카운트)
class Solution {
public int solution(int n) {
String binaryN = Integer.toBinaryString(n);
int oneCount = 0;
for (char c : binaryN.toCharArray()) {
if (c == '1') {
oneCount++;
}
}
while(true) {
n++;
String binaryTemp = Integer.toBinaryString(n);
int count = 0;
for (char c : binaryTemp.toCharArray()) {
if (c == '1') {
count++;
}
}
if (count == oneCount) {
break;
}
}
return n;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - N진수 게임 문제 (자바) (0) | 2021.04.02 |
---|---|
프로그래머스 - 뉴스 클러스터링 문제 (자바) (0) | 2021.03.31 |
프로그래머스 수식 최대화 문제 (자바) (0) | 2021.03.30 |
프로그래머스 - 퀴드압축 후 개수 세기 문제 (자바) (0) | 2021.03.30 |
프로그래머스 - 야근 지수 문제 (자바) (0) | 2021.03.28 |