본문 바로가기

문제 풀기/코딩인터뷰

[코딩인터뷰 완전정복] 1.6 문자열 압축

Q : 반복되는 문자의 개수를 세는 방식의 기본적인 문자열 압축 메서드를 작성하라. 만약 압축된 문자열의 길이가 기존문자열보다 길다면 기존 문자열을 반환한다.

A :

1. 하나의 문자를 읽어와서 저장한다. 카운트를 1로 한다.

2. 다음 문자를 읽어와서 저장된 문자와 같다면 카운트를 1올린다.

3. 다른 문자가 나올때까지 2를 반복.

4. 다른 문자가 나올경우 압축 문자열에 저장된문자와 카운트를 추가한다.

5. 압축문자열이 기존문자열보다 길어지거나 문자열이 끝날때까지 1부터 반복.

6. 압축문자열이 기존문자열보다 길다면 기존문자열을 반환. 아닐경우 압축 문자열을 반환