본문 바로가기

PS

문자열 압축 [프로그래머스]

1) 문제 접근 방법

-

 

 

2) 소스 코드 

import java.util.*; 

class Solution {
    public int solution(String s) {
        int answer = Integer.MAX_VALUE;
        
        int len = s.length();
        
        for(int i=1; i<=len; i++){
            
            String ans = "";
            
            ArrayList<String> strs = new ArrayList<>();
            int start = 0;
            int end = i;
            
            while(true){
                if(start >= len){
                    break;
                }
                if(end > len){
                    end = len;
                }
                String tmp = s.substring(start, end);
                strs.add(tmp);
                start += i;
                end += i;                 
            }
            
            int cnt = 1;
            
            for(int j=1; j<strs.size(); j++){
                if(strs.get(j-1).equals(strs.get(j))){
                    cnt += 1;
                }else{
                    if(cnt != 1){
                        ans += Integer.toString(cnt);
                    }
                    ans += strs.get(j-1);
                    cnt = 1;
                }
            }
            
            if(cnt != 1){
                ans += Integer.toString(cnt);
            }
            ans += strs.get(strs.size()-1);
            
            // System.out.println(ans);
            answer = Math.min(answer, ans.length());
        }
        
        
        return answer;
    }
}

'PS' 카테고리의 다른 글

뮤탈리스크 [BOJ 12869]  (0) 2023.08.12
인구이동 [BOJ 16234]  (0) 2023.08.12
괄호변환 [프로그래머스]  (0) 2023.06.25
후보키 [프로그래머스]  (1) 2023.06.03
캐시 [프로그래머스]  (0) 2023.06.03