

나의 풀이
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
int remove = 0;
int count = 0;
while (s.length() > 1) { // 1
int before = s.length(); // 2
s = s.replaceAll("0", "");
int after = s.length();
remove = remove + (before - after);
s = Integer.toBinaryString(after); // 3
count++;
}
answer[0] = count; // 4
answer[1] = remove;
return answer;
}
}
과정
- s가 1이 되면 길이가 1이니 길이가 1 이상일때만 반복하는 반복문을 선언
- before과 after를 선언해 0을 제거한 전, 후의 길이를 비교해서 remove에 저장
- s를 이진수로 변환하고 과정이 일어난 횟수를 증가
- 문제에 맞게 해당 변수들을 배열에 저장
다른 사람 풀이
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
int temp;
while( !s.equals("1") ) {
answer[1] += s.length();
s = s.replaceAll("0", "");
temp = s.length();
s = Integer.toBinaryString(temp);
//System.out.println("s : " + s );
answer[0]++;
answer[1] -= temp;
}
return answer;
}
}