PROGRAMMERS/연습문제

[프로그래머스] [JAVA] [Level 2] [연습문제] 이진 변환 반복하기

c0mmedes 2022. 9. 9. 15:52



import java.util.*;

class Solution {
    public int[] solution(String s) {

       
        int zeroCount=0; // 0의 개수를 세어 줄 카운트
        int count=0; // 몇 회차 인지 세어 줄 카운트
        int lengt = 0; // s의 길이
        
        while(true){
            // 문자열에서 0 카운트해주기
            for(int i=0; i<s.length(); i++){
                if(s.charAt(i)=='0') zeroCount++;
            }
            
            // 문자열에서 0 제거
            s = s.replace("0","");    
    
            lengt = s.length();
            
            // s의 길이를 2진법으로 바꿔주기
            s = Integer.toBinaryString(lengt);
            
            // 회차를 세어주기 위한 카운트++
            count++;
            
            // s가 1이면 종료
            if(s.equals("1")) break;
        }              
        
        int[] answer = {count, zeroCount};
        
        return answer;
    }
}

  • Integer.parseInt(i, N) // N진법 -> 10진법
  • Integer.toBinaryString(number) // 10진법 -> 2진법
  • Integer.toOctalString(number) // 10진법 -> 8진법
  • Integer.toHexString(number) // 10진법 ->16진법