public int[] solution(String s) {
int convertCnt = 0;
int removedZeroCnt = 0;
while (!s.equals("1")) {
String temp = s.replaceAll("0", "");
removedZeroCnt += (s.length() - temp.length());
s = Integer.toBinaryString(temp.length());
convertCnt++;
}
return new int[]{convertCnt, removedZeroCnt};
}
문제에서 하라는대로 순서대로 풀었다
변수
while 문을 통해 최종 결과인 s 가 “1”이 될 때까지 반복한다.
임시 변수 temp 선언 : 현재의 s에서 0을 제거한 문자열
0이 제거된 횟수 : s.length() - temp.length() >> removedZeroCnt 에 누적해준다.
s 변환 : temp 의 길이인 숫자를 2진수 String 으로 변환한 값을 s 에 다시 할당 >> convertCnt 값 +1 증가
s = Integer.toBinaryString(temp.length())
while 문을 통과하고 난 후의 convertCnt, removedZeroCnt 값을 배열로 리턴