프로그래머스(Java) - 이진 변환 반복하기

민지킴·2021년 4월 15일
0

프로그래머스

목록 보기
11/42
post-thumbnail

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/70129

문제 풀이

문자열을 이진 변환 하는 더 깔끔한 코드를 생각한다면 무난한 문제였다.


코드

import java.util.*;

class Solution {
    public int[] solution(String s) {
        int[] answer = new int[2];
        
        
         while(s.length()>1){
            
            //0을 제거하여 새로운 문자열 만듬
            int ori = s.length();
            s = s.replace("0","");
            answer[1] += ori-s.length();
            //문자열의 길이
            int len = s.length();
             
            //문자열을 이진 변환함
             List<String> arr = new ArrayList();
             
             while(len>=1){
                 if(len%2==1){
                     arr.add("1");
                     len /=2;
                 }else{
                     arr.add("0");
                     len /=2;
                 }
             }
             String temp="";
             for(int i=arr.size()-1; i>=0; i--){
                temp+= arr.get(i);
             }
             s = temp;
             answer[0]++; 
         }
        return answer;
    }
}
profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글