728x90
반응형
▷ 문제
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는
문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.
단 반복횟수가 1인 경우 생략합니다.
* 입력
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
* 출력
첫 줄에 압축된 문자열을 출력한다.
▷ 입력 예시
KKHSSSSSSSE
▷ 출력 예시
K2HS7E
▷ 풀이
import java.util.Scanner;
public class Main {
public String solution(String str){
String answer = "";
str = str + " ";
int cnt = 1;
for (int i = 0; i < str.length()-1; i++) {
if (str.charAt(i) == str.charAt(i + 1)) {
cnt++;
} else {
answer += str.charAt(i);
if (cnt > 1) {
answer += String.valueOf(cnt);
}
cnt = 1;
}
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(main.solution(str));
}
}
▷ 핵심 포인트
1. str = str + " "; 을 통해 문자열의 마지막 문자도 로직을 타도록 손 쉽게 처리할 수 있다.
반응형
'Algorithm > String' 카테고리의 다른 글
[알고리즘]중복문자 제거 - 입력 받은 문자열에서 중복된 문자 제거하기 (0) | 2021.10.11 |
---|---|
[알고리즘]가장 짧은 문자거리 (0) | 2021.10.11 |
[알고리즘]숫자 추출 - 입력받은 문자열에서 숫자만 추출하기 (0) | 2021.10.10 |
[알고리즘]유효한 팰린드롬 - 입력 받은 문자열이 팰린드롬인지 판별하기 (0) | 2021.10.10 |
[알고리즘]회문 문자열 - 입력 받은 문자열이 회문 문자인지 판단하기 (0) | 2021.10.10 |