[알고리즘] 01.String / 11.문자열 압축
문자열 압축
설명
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.
단 반복횟수가 1인 경우 생략합니다.
입력
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
출력
첫 줄에 압축된 문자열을 출력한다.
예시 입력 1
KKHSSSSSSSE
예시 출력 1
K2HS7E
예시 입력 2
KSTTTSEEKFKKKDJJGG
예시 출력 2
KST3SE2KFK3DJ2G2
코드
import java.util.Scanner;
public class JC_0111 {
public static void main(String[] args) {
// TODO Auto-generated method stub
JC_0111 T = new JC_0111();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.print(T.solution(str));
}
//KKHSSSSSSSE
//KSTTTSEEKFKKKDJJGG
public String solution(String str) {
String answer = str.charAt(0)+"";
char c = str.charAt(0); //비교할 대상
int count = 1; //카운트
for(int i=1; i<str.length(); i++) {
if(c == str.charAt(i)) { //같으면
count++;
c = str.charAt(i);
}else { //다르면
if(count != 1) {
answer += count;
}
count = 1;
c = str.charAt(i);
answer += c;
}
}
//마지막 비교대상
if(count != 1) {
answer += count;
}
return answer;
}
}