코딩 테스트

프로그래머스) 이진 변환 반복하기 Lv2

우루쾅 2024. 2. 8. 11:09
728x90
반응형
SMALL

블로그를 만든 후 첫번째 코테 2래벨 문제!!

 

몇개 풀어보긴 했는데 쉬운건 래벨 1짜리보다 풀만한 것 같다 ㅎㅎ!

 

이 문제는 0과 1로 구성된 문자열에서 0을 제외하고 그 길이를 2진법으로 변환하는 작업을 반복해서

1이 될 때 까지의 횟수와 제외된 0의 갯수를 카운트하는 문제이다

 

나는 위 과정을 구현을 한뒤에 while 문으로 자릿수가 1이 될 때까지 반복해서 문제를 해결했다~

 

 

 

 

 


정답

import java.util.*;

class Solution {
    public int[] solution(String s) {
        int[] answer = new int[2];
        int countZero = 0;
        int ck = 0;
        
        while(s.length() > 1){
            for(int i=0; i<s.length(); i++){
                char c = s.charAt(i);

                if(c == '0'){
                    countZero++;
                }
            }
            s = s.replaceAll("0","");
            s = Integer.toBinaryString(s.length());
            ck++;
        }
            
        answer[0] = ck;
        answer[1] = countZero; 
        
        return answer;
    }
}

 

출처

프로그래머스 - https://school.programmers.co.kr/learn/courses/30/lessons/70129

728x90
반응형
LIST