[Programmers]-이진 변환 반복하기
문제
이진수 문자열 x를 받는다.
- x의 모든 0을 제거한다.
- x의 길이를 이진법 문자열로 바꾼다.
- x가 1이 될 때 까지 바꾼다.
- 변환 과정을 몇번을 했는지, 전체 제거한 0의 수를 반환한다.
코드
class Solution {
public int[] solution(String s) {
return transform(s);
}
public int[] transform(String s){
int cycle = 0;
int erase_total = 0;
int[] answer = new int[2];
while(s.length() != 1){
int erase_zero = 0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='0') erase_zero++;
}
s = Integer.toBinaryString(s.length()-erase_zero);
erase_total += erase_zero;
cycle++;
}
answer[0] = cycle;
answer[1] = erase_total;
return answer;
}
}
코드 설명
문자 알고리즘 대로 흘러간다.
요약
- Integer.toBinaryString() : 이진수 String 반환