나의 풀이
class Solution {
public int solution(int n) {
int answer = 0;
String original = Integer.toBinaryString(n);
int original_one_cnt=original.length() - original.replace("1", "").length();
while (true){
n=n+1;
String compare=Integer.toBinaryString(n);
int compare_one_cnt= compare.length() - compare.replace("1", "").length();
if(original_one_cnt == compare_one_cnt){
break;
}
}
return n;
}
}
▶ 주어진 매개변수 n을 2진수 문자열로 바꾼다.
▶ 문자열의 1의 개수를 센다.
▶ while문의 루프를 돌면서 n을 1씩 증가시킨다.
▶ 1증가된 10진수 n을 2진수 문자열로 바꾼다.
▶ 증가된 문자열의 1의 개수를 센다.
▶ original문자열의 1의 개수와 compare 문자열의 1의 개수가 같아질 때 break
▶ if문을 탈출 했을 때의 10진수 n을 반환한다.
'프로그래머스(자바) > LV.2(자바)' 카테고리의 다른 글
짝지어 제거하기→'문자비교' == , "문자열비교" equals, peek()★★+크레인 인형뽑기와 유사 (0) | 2022.12.24 |
---|---|
카펫→ 리스트 배열넣기, 리스트 출력★★ (0) | 2022.12.24 |
피보나치 수→ 오버플로우 극복방법: %★★★ (1) | 2022.12.24 |
이진 변환 반복하기 → 특정 요소 개수 replace() 이용★★★ + 10진수→2진수★ (0) | 2022.12.23 |
올바른 괄호 →예외★★ + count로 접근 (0) | 2022.12.23 |