JAVA 코딩테스트 - 문자열 압축

devdo·2022년 5월 6일
0

코딩테스트

목록 보기
4/13
post-thumbnail
/**
 * 11. 문자열 압축
 * 설명
 *
 * 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는
 *
 * 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.
 *
 * 단 반복횟수가 1인 경우 생략합니다.
 *
 *
 * 입력
 * 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
 *
 *
 * 출력
 * 첫 줄에 압축된 문자열을 출력한다.
 *
 *
 * 예시 입력 1
 *
 * KKHSSSSSSSE
 * 예시 출력 1
 *
 * K2HS7E
 * 예시 입력 2
 *
 * KSTTTSEEKFKKKDJJGG
 * 예시 출력 2
 *
 * KST3SE2KFK3DJ2G2
 */

public class Solution {

    public String solution(String str) {

        String answer = "";
        str = str + " ";	// 맨 뒤를 빈문자열(" ") 넣기!
        String[] ch = str.split("");	

        int count = 0;

        for (int i = 0; i < ch.length-1; i++) {	// ch.length-1
            count++;
            if (!ch[i].equals(ch[i + 1])) {
                if(count == 1) answer += ch[i];
                else answer += ch[i] + count;
                count = 0;
            }

        }

        return answer;
    }

    public static void main(String[] args) throws IOException {

        Solution T = new Solution();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();

        System.out.println("str: "+ T.solution(str));
    }
}
profile
배운 것을 기록합니다.

0개의 댓글