728x90
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. n보다 큰 자연수
2. n이랑 2진수의 1 개수가 같음
=> 조건 1, 2를 만족하는 수 중 가장 작은 수 리턴
#정수 n의 2진수의 1의 개수 카운트해주는 함수
Integer.bitCount(n)
class Solution {
public int solution(int n) {
int answer = 0;
// 2진수로 변환
String bnum = Integer.toBinaryString(n);
// 2진수의 1의 개수 카운트
int o = countOne(bnum);
// n보다 큰 수 중에서 n의 2진수 1개수가 같은 거 구하기
int num = n;
while(true){
num++;
// 이진수 변환
String big = Integer.toBinaryString(num);
if(o == countOne(big)){
answer = num;
break;
}
}
return answer;
}
public int countOne(String bnum){
int one = 0;
for(int i=0; i<bnum.length(); i++){
char c = bnum.charAt(i);
if(c == '1') one++;
}
return one;
}
}'Algorithm > Programmers' 카테고리의 다른 글
| [Lv.2] 귤 고르기 : Java / HashMap 함수 (0) | 2026.02.02 |
|---|---|
| 💚[Lv.2] 짝지어 제거하기 : Java (0) | 2026.01.30 |
| [Lv.2] 이진 변환 반복하기 : Java / 이진법 변환 함수 (0) | 2026.01.30 |
| [Lv.2] JadenCase 문자열 만들기 : Java (0) | 2026.01.28 |
| [Lv.1] k번째 수 : Java (0) | 2025.12.14 |