본문 바로가기
algorithm solving/general

문자열 압축

by 일상코더 2023. 3. 1.
문자열 압축

설명

알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는

문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.

단 반복횟수가 1인 경우 생략합니다.

 

입력

첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.

출력

첫 줄에 압축된 문자열을 출력한다.

예시 입력 1 

KKHSSSSSSSE

예시 출력 1

K2HS7E

 

package ez.prac;

public class S11 {

    public String solution(String s){
        String answer = "";
        s = s + " ";
        int cnt = 1;
        for (int i = 0; i < s.length() - 1; ++i) {
            //문자열의 i번째 문자가 문자열의 i+1이랑 같은경우 cnt + 1
            if (s.charAt(i) == s.charAt(i + 1)) {
                cnt++;
            }else{
                answer += s.charAt(i);
                if (cnt > 1) {
                    answer += String.valueOf(cnt);
                    cnt = 1;
                }
            }
        }

        return answer;
    }

}

 

main

package ez.prac;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        S11 s11 = new S11();

        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        System.out.println(s11.solution(s));
    }
}

'algorithm solving > general' 카테고리의 다른 글

가장 짧은 문자거리  (0) 2023.02.17
숫자만 추출  (0) 2023.02.17
회문 문자열  (0) 2023.02.16
중복 문자 제거  (0) 2023.02.16
특정 문자 뒤집기  (0) 2023.02.16

댓글