본문 바로가기
자바 알고리즘

11. 문자열 압축

by watergrace2u 2022. 7. 6.
반응형
SMALL


# 풀이

Q. 어떤 문자열의 인덱스 i와 i+1 번째를 비교하고 싶은데 ‘index out of range ~~’ 이런 범위 뜰까봐 걱정되면?
A. 해당 문자열 끝에 str += “”; 이런식으로 끝에 공백 문자열 추가하기

import java.util.Scanner;

public class Main {
	
	public String solution(String s){
				
		String answer = "";
		// index out of range 와 같은 오류 방지 차원
		s = s + " ";
		int cnt = 1;

		// 문자열 끝에 공백을 추가해놓았으므로, i범위 주의!
		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;
			}
		}
		return answer;
	}

    public static void main(String args[]){
		
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String str = kb.next();
	
       System.out.print(T.solution(str));
        
    }
}






반응형
LIST

'자바 알고리즘' 카테고리의 다른 글

13. 가위바위보  (0) 2022.08.02
12. 보이는 학생  (0) 2022.08.02
10. 가장 짧은 문자거리  (0) 2022.07.05
09. 숫자만 추출  (0) 2022.04.11
08. 팰린드롬 (replaceAll 정규식 이용)  (0) 2022.04.11

댓글