JAVA를 JAVA라

[JAVA] 문자열 압축하기, runLength 본문

JAVA/풀어봅시다 (eclipse)

[JAVA] 문자열 압축하기, runLength

샛별KIM 2021. 5. 28. 15:47
import java.util.Arrays;

/*
 * 문자열을 입력받아서, 같은 문자가 연속적으로 반복되는 경우
 * 그 반복 횟수를 표시하여 문자열을 압축하기.
 * 
 * 입력 예 : aaabbcccccca
 * 
 * 출력 예 : a3b2c6a1
 */
public class RunLength {

	public static void main(String[] args) {
		String zip = "aaabbccccccaa";
		char[] cZip = zip.toCharArray();
		System.out.println(Arrays.toString(cZip));
		String result = "" + cZip[0]; // 일단 첫글자 넣어주기
		int cnt = 1;

		for (int i = 1; i < cZip.length; i++) {			
			if (cZip[i] == cZip[i - 1]) {
				cnt++;
				// i와 이전 알파벳이 같으면 cnt 1 추가

			} else {
				result += cnt; // 이전 알파벳과 다르면 일단 cnt 출력
				result += cZip[i]; // 다음 알파벳 출력
				cnt = 1; // cnt 초기화
			}
			
			if (i == cZip.length - 1) {
				result += cnt;
			}
		} // end of for

//		result += cnt; // 마지막에 카운트한 숫자 출력

		System.out.println(result);
	}// end of main
}// end of class

///////출력 

[a, a, a, b, b, c, c, c, c, c, c, a, a]
a3b2c6a2

Comments