문제 링크
이진 변환 반복하기
풀이
- 0을 제거한 횟수, 그리고 이진 변환을 몇 번 하였는지도 같이 세줘야했다.
- 이진 변환을 어떻게 해야할까 하다가...간단한 방법을 찾았다.
Integer.toBinaryString(integer)
을 사용하면 integer에 해당되는 10진수를 2진수로 바꿔준다.
- 그러면 이제 아주 쉽게 확인할 수 있다.
import java.util.Arrays;
public class 이진변환반복하기 {
public int[] solution(String s) {
int[] answer = new int[2];
int length;
int cnt = 0;
int deleteZeroCnt = 0;
while (s.length() != 1) {
int originLength = s.length();
s = s.replaceAll("0", "");
length = s.length();
deleteZeroCnt += originLength - length;
s = Integer.toBinaryString(length);
cnt++;
}
answer[0] = cnt;
answer[1] = deleteZeroCnt;
return answer;
}
}
후기
- Integer.toBinaryString... 몰랐는데 좋은걸 알았다.