나의 풀이
class Solution {
public static int[] solution(String s) {
int a = 0;
int b = 0;
while (!s.equals("1")) {
a += 1;
int num = s.length() - s.replace("1", "").length();
b += s.length() - num;
s = Integer.toBinaryString(num);
}
return new int[] {a, b};
}
}
▶ a는 cycle 순환 횟수를 의미한다.
▶ num은 1의 개수를 의미한다.
▶ b는 제거한 '0'의 갯수를 의미한다.
▶ 전체 문자열 개수 - 1의 개수를 빼면 제거한 '0'의 개수를 알수 있다.
▶ Integer.toBinaryString(decimal)→ 10진수를 2진수로 바뀌 준다.
'프로그래머스(자바) > LV.2(자바)' 카테고리의 다른 글
다음 큰 숫자→'문자열'에서 특정 요소 개수 세기(replace)★★ (0) | 2022.12.24 |
---|---|
피보나치 수→ 오버플로우 극복방법: %★★★ (1) | 2022.12.24 |
올바른 괄호 →예외★★ + count로 접근 (0) | 2022.12.23 |
최솟값 만들기 → 동일 for문 안에서 서로 반대로 곱하기★★ (0) | 2022.12.23 |
JadenCase 문자열 만들기→Character.toUpperCase() + 삼항연산자 (0) | 2022.12.23 |