개발놀이터
1-11. 문자열 압축 본문
package string.CompressionString111.my;
import java.util.Scanner;
public class Main {
/**
* -내 풀이-
* i + 1 까지 넣으면 index 가 초과되어 로직을 추가했는데 괜한 뻘짓이었다.
*
* --피드백--
* 그냥 들어오는 input 에 빈칸 하나 추가하면 되는 것이었다.. 너무 허무..
*/
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String input = kb.next();
System.out.println(solution(input));
}
private static String solution(String input) {
String answer = "";
int check = 1;
for (int i = 0; i < input.length(); i++) { // input.length() = 11 / i + 1 의 최댓값 = 11
if (i + 1 != input.length()) {
if (input.charAt(i) == input.charAt(i + 1)) {
check++;
}
else {
if (check != 1) {
answer += input.charAt(i) + String.valueOf(check);
}
else {
answer += input.charAt(i);
}
check = 1;
}
}
else {
if (check != 1) {
answer += input.charAt(i) + String.valueOf(check);
}
else {
answer += input.charAt(i);
}
}
}
return answer;
}
}
package string.CompressionString111.teacher;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(solution(str));
}
private static 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;
}
}
'기타 > 코딩테스트' 카테고리의 다른 글
1장 문자열 주요 개념 복습 노트 (0) | 2023.02.09 |
---|---|
1-12. 2진 암호 (0) | 2023.02.09 |
1-10. 가장 짧은 문자 거리 (0) | 2023.02.09 |
1-9. 숫자만 추출 (0) | 2023.02.09 |
1-8. 유효한 회문 문자열 (0) | 2023.02.09 |