olrlobt

[프로그래머스 2단계] 이진 변환 반복하기 본문

Algorithm/프로그래머스

[프로그래머스 2단계] 이진 변환 반복하기

olrlobt 2022. 12. 30. 22:04

🔒 2단계 - 이진 변환 반복하기

📌 테스트케이스 추가 힌트

해당 문제는 추가 테스트케이스가 필요하지 않았다.





✍️ 풀이법

먼저 문제 풀이 법을 생각해 보면, 다음과 같다.

1. 문자열 S에서 0을 제거한다
2. 1만 남은 문자열의 길이를 구한다
3. 길이를 2진수로 변환한다
4. 변환한 수를 문자열 S에 넣는다
5. 1~4를 문자열 S가 1이 될때까지 반복한다

answer = [반복한 횟수, 0을 지운 횟수]

int 타입을 2진수 문자열로 리턴하는 toBinaryString을 사용하여 문제를 해결하였는데, 
아주 간단하게 풀었다고 생각한다.

🗝️ 풀이

class Solution {
    public int[] solution(String s) {
        int[] answer = {0,0};
        int leng = 0;

        while(!s.equals("1")){
            leng = 0;
            answer[0]++;

            for(int i=0; i<s.length() ;i++){
                if(s.charAt(i)=='0'){
                    answer[1]++;
                }else{
                    leng++;
                }
            }
            s= Integer.toBinaryString(leng);
        }
        return answer;
    }
}

프로그래머스에서 문자열에서 특정 단어를 지우는 문제가 많이 나오지만,
나올때마다 바로바로 떠오르지는 않는 것 같다

문자열을 지우는 방법을 숙지할 필요가 있다고 느꼈다.

Comments