백엔드개발자/알고리즘관련
문자열 압축
보혀니
2021. 10. 18. 22:00
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우
반복되는 문자 바로 오른쪽에 반복 횟수를 표시하는 방법으로 문자열을 압축하는 프로그램을 작성.
단 반복횟수가 1인 경우 생략한다.
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
첫 줄에 입력된 문자열을 출력한다.
예시 :
KKHSSSSSE
예시출력 :
K2HS5E
import java.util.Scanner;
public class Main {
public void solution() {
String answer = "";
String s = "KKHSSSSE";
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); // answer += cnt;
// 굳이 String.valueOf를 사용한게 이유가 있을까?
cnt = 1;
}
}
}
System.out.println(answer);
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
// char s = kb.next().charAt(0);
// String str = kb.next();
T.solution();
}
}
문자열을 char[]로 바꾸고, 크기는 문자열 사이즈 +1로 해서 물려고 했음.
암튼 그러다가 막힘ㅠ
String에 " " 을 더해주는것도 방법이구나..
반복문이 지저분해지는 것에 대한 불편함 불안감이 있음
소심해짐. else에다가 또 if 넣어도 되려나? 이런 소심하고 찐따같은 생각을 했음.
이런 생각 좀 버려야겠다.
KKHSSSSE 에 대한 결과