문제 설명 :
https://school.programmers.co.kr/learn/courses/30/lessons/12911
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 요약 :
- 숫자 n보다 크면서 이진수로 변환했을 때 1의 갯수가 같은 수 구하기
문제 풀이 시간 : 10분
문제 성공 여부 : 성공
접근 방법(성공) :
- n을 이진수로 변환
- 1의 갯수 저장
- n+1을 반복하며 이진수로 변환해서 1의 개수가 같은지 비교
전체 코드(성공) :
class Solution {
public int solution(int n) {
String N = Integer.toBinaryString(n); // n을 이진수로 변환
int n_cnt = getOneCount(N); // 1의 갯수
int number = n;
while(true){
number++; // n에서 1씩 더하기
String NUMBER = Integer.toBinaryString(number); // 이진수로 변환
int cnt = getOneCount(NUMBER); // 1의 갯수
if(n_cnt == cnt) break; // 1의 갯수가 동일할 경우 break
}
return number; // 숫자 반환
}
static int getOneCount(String number){
int cnt = 0;
for(int i = 0; i<number.length(); i++){
if(number.charAt(i)=='1') cnt++; // '1'이면 cnt 증가
}
return cnt;
}
}
너무 깔~~끔~~
'코테 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 연속 부분 수열 합의 개수 - java (2) | 2025.05.06 |
|---|---|
| [프로그래머스] 이진 변환 반복하기 - java (4) | 2025.04.08 |
| [프로그래머스] 도둑질 - java (4) | 2025.04.03 |
| [프로그래머스] 광고 삽입 - java (4) | 2025.03.29 |
| [프로그래머스] 양과 늑대 - java (1) | 2025.03.27 |