Algorithm/inflearn
문자열 압축
마닐라
2021. 9. 6. 17:07
import java.util.Scanner;
class Main {
public String solution(String s) {
String answer = "";
s=s + " "; //마지막 문자 때문에 빈 문자열 삽입
int cnt = 1;
for(int i = 0; i < s.length()-1; i++) {
if(s.charAt(i) == s.charAt(i+1)) cnt++;
else {
//문자를 더해라
answer += s.charAt(i);
if(cnt > 1) answer += String.valueOf(cnt);
cnt=1;
}
//입력 문자열 KKHSSSSSSSE -> K2HS7E
//0일 때는 cnt만 증가
//1일 때는 해당 문자(K)와 숫자(2) 삽입 (K2) 그리고 다시 cnt = 1로 초기화
//2일 때는 해당 문자만 삽입(H)
//3,4,5,6,7,8까지 num이 더해져서 7이 됨
//9일 때는 S와 E 다르므로 해당 문자(S)와 숫자(7) 삽입 다시 cnt = 1로 초기화
//10일 때는 마지막 문자이므로 빈 문자열과 비교하여 해당 문자만 삽입 (E)
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}