문자열을 이진 변환 하는 더 깔끔한 코드를 생각한다면 무난한 문제였다.
import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
while(s.length()>1){
//0을 제거하여 새로운 문자열 만듬
int ori = s.length();
s = s.replace("0","");
answer[1] += ori-s.length();
//문자열의 길이
int len = s.length();
//문자열을 이진 변환함
List<String> arr = new ArrayList();
while(len>=1){
if(len%2==1){
arr.add("1");
len /=2;
}else{
arr.add("0");
len /=2;
}
}
String temp="";
for(int i=arr.size()-1; i>=0; i--){
temp+= arr.get(i);
}
s = temp;
answer[0]++;
}
return answer;
}
}