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

import java.util.Scanner;
class Main {
public String solution(String str ) {
String answer = "";
str = str + " ";
int p = 1;
for(int i = 0; i <str.length()-1; i++) {
if(str.charAt(i) == str.charAt(i+1)) {
p++;
} else {
answer += str.charAt(i);
if(p > 1) answer += String.valueOf(p);
p = 1;
}
}
return answer;
}
public static void main(String[] args){
Main t = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(t.solution(str));
}
}
1) str.charAt(i) == str.charAt(i+1)
-> 마지막 인덱스(10) 비교 위해, str = str + " "; (문자열 + 문자열)

2) String.valueOf() : String 형변환
- null 또한 String 값으로 출력
'코딩테스트 > basic' 카테고리의 다른 글
[JAVA]String10.가장 짧은 문자 거리 (0) | 2022.05.24 |
---|---|
[JAVA]String09.숫자만 추출 (0) | 2022.05.18 |
[JAVA]String08.유효한 팰린드롬 (0) | 2022.05.18 |
[JAVA]String07. 회문 문자열 (0) | 2022.05.17 |
[JAVA]String06.중복 문자 제거 (0) | 2022.05.17 |