💡Problem Solving/Programmers
[프로그래머스] 이진 변환 반복하기 (Java)
gom20
2021. 10. 21. 19:14
#문제
https://programmers.co.kr/learn/courses/30/lessons/70129
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
#풀이
문자열의 초기 length 를 구한 후 0을 제거한 length 와 비교하여 zero count를 구하여 더해준다.
0을 지운 후의 문자열 length의 길이로 Integer.toBinaryString() 함수를 호출하여 이진수 String을 다시 변수에 할당한다.
이후 변환 횟수를 증가시킨다.
#소스코드
import java.util.*;
class Solution {
public int[] solution(String s) {
int zeroCnt = 0, transCnt = 0, bfLen = 0, afLen = 0;
while(!s.equals("1")) {
bfLen = s.length();
s = s.replace("0", "");
afLen = s.length();
zeroCnt += bfLen - afLen;
s = Integer.toBinaryString(afLen);
transCnt++;
}
return new int[]{transCnt, zeroCnt};
}
}