public class programmers {
public static void main(String[] args) throws Exception {
String s ="110010101001" ;
solution(s);
}
static int removeZero(String s){
//s에서 0 제거
int cnt = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == '0'){
cnt++;
}
}
return cnt;
}
static int[] solution(String s) {
int[] answer = {0,0};
String sStr = s;
int c = 0;
int cnt = 0;
while(!sStr.equals("1")){
cnt++;
answer[1] = answer[1] + removeZero(sStr); //0 제거
sStr = sStr.replaceAll("0", "");
answer[0]++; //이진 변환의 횟수 증가
//c는 s의 길이
c = sStr.length();
//c를 2진법으로 표현한 문자열로 바꿈
sStr = String.valueOf(Integer.toBinaryString(c));
System.out.println(cnt+"번째 " + sStr);
}
System.out.println(cnt+"번째 " + answer[0]);
System.out.println(cnt+"번째 " + answer[1]);
return answer;
}
}
이 문제는 사실 equals 안 쓰면 통과가 요상하게 됨!
== 를 활용했다가 귀찮아서 equals로 복귀했더니 통과되었다...
테스트... 무엇일까...
댓글
댓글 쓰기