https://school.programmers.co.kr/learn/courses/30/lessons/70129
처음 입력 s에서 0을 전부 제거 후 남은 1의 개수를 다시 2진법으로 변환, 이를 반복
반복한 수, 제거한 0의 개수를 결과로 출력하는 문제
class Solution {
static int n = 0;
static int m = 0;
public int[] solution(String s) {
func(s, s.length());
return new int[]{n, m};
}
static void func(String s, int len) {
if (len == 1) return;
StringBuilder sb = new StringBuilder();
String[] st = s.split("");
for (int i = 0; i < len; i++) {
if (!st[i].equals("0")) {
sb.append(1);
} else {
m++;
}
}
n++;
String ns = Integer.toBinaryString(sb.length());
func(ns, ns.length());
}
}
'Programmers' 카테고리의 다른 글
[프로그래머스][JAVA]Lv. 2 - 괄호 회전하기 (1) | 2023.10.15 |
---|---|
[프로그래머스][JAVA]Lv. 2 - 순위 검색 (0) | 2023.10.09 |
[프로그래머스][JAVA]Lv. 2 - 쿼드압축 후 개수 세기 (0) | 2023.09.25 |
[프로그래머스][JAVA]Lv. 2 - 튜플 (0) | 2023.09.25 |
[프로그래머스][JAVA]Lv. 2 - 멀쩡한 사각형 (0) | 2023.09.25 |