[프로그래머스] 이진 변환 반복하기
https://school.programmers.co.kr/learn/courses/30/lessons/70129
이진 변환의 횟수
와 변환 과정에서 제거된 모든 0의 개수
를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요.import java.util.*;
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
int turnCnt = 0; // 이진 변환 횟수
int zeroCnt = 0; // 삭제한 0의 개수
String str = s; // 현재 문자열 저장할 변수
while(true) {
// "1"만 남으면 반복 종료
if(str.equals("1")) break;
turnCnt++; // 이진 변환 횟수 + 1
int oneCnt = 0; // "1" 개수
// 현재 문자열에 있는 "0"과 "1"의 갯수 세기
for(char c : str.toCharArray()) {
if(c == '1') {
oneCnt++;
} else {
zeroCnt++;
}
}
// "1" 개수를 이용해 2진수 구하기
String bin = Integer.toBinaryString(oneCnt);
str = bin;
}
answer[0] = turnCnt;
answer[1] = zeroCnt;
return answer;
}
}