💡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};
    }
}