코딩테스트/기초

11. 문자열 압축

누리는 귀여워 2024. 12. 7. 19:20

 

import java.util.*;

class Main {
    public String solution(String str) {
        String answer = "";
        // 공백을 안넣으면 마지막 글자은 인식이 안됨
        str = str + " ";
        int cnt = 1;
        for(int i = 0; i < str.length()-1; i++) {
        	// 지금과 다음 글자가 같다면 cnt + 1
            if(str.charAt(i) == str.charAt(i+1)) {
                cnt++;
            // 글자가 다르다면 현재 글자를 answer에 추가
            } else {
                answer += str.charAt(i);
                // cnt가 1 초과면(같은 글자가 여러개라면)
                // answer에 cnt를 더하고 1로 초기화
                if(cnt > 1) {
                    answer += cnt;
                    cnt = 1;
                }
            }
        }
        return answer;
    }
    
    public static void main(String []args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        System.out.println(T.solution(str));
    }
}

 

import java.util.*;

class Main {
    public String solution(String str) {
        String answer = "";
        str = str + " ";
        int cnt = 1;
        for(int i = 0; i < str.length()-1; i++) {
            if(str.charAt(i) == str.charAt(i+1)) {
                cnt++;
            } else {
                answer += str.charAt(i);
                if(cnt > 1) {
                    answer += cnt;
                    cnt = 1;
                }
            }
        }
        return answer;
    }
    
    public static void main(String []args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        System.out.println(T.solution(str));
    }
}