Menu
CoddyTech

String Compression

영문자로 이루어진 문자열 s가 주어집니다. 이 문자열을 압축하세요. 연속해서 두 개 이상 같은 문자가 반복되면 해당 문자를 반복 횟수와 함께 표시하고, 한 번만 나타나는 문자는 그대로 둡니다. 따라서 aabccc는 a2bc3가 됩니다. 압축된 문자열을 반환하세요.

대문자와 소문자는 서로 다른 문자입니다. aA는 길이가 1인 두 개의 반복 구간입니다.

함수

compress(s: string) → string
sstring
압축할 문자열, 영문자만
반환값string
압축된 문자열에서는 각 연속 구간을 해당 문자의 뒤에 길이가 1보다 큰 경우 그 길이를 붙여 씁니다

제약 조건

  • 1 ≤ s.length ≤ 2 × 104
  • s에는 a부터 z까지와 A부터 Z까지의 영문자만 포함됩니다.
  • 런 길이는 십진수로 표기되며 여러 자릿수일 수 있습니다.

예제

입력
s = "aabccc"
출력
"a2bc3"
설명
연속된 문자는 aa, b 및 ccc입니다. 각각 a2, b(문자가 하나만 있으면 개수를 표시하지 않음), c3이 됩니다.
challenge icon

후속 질문

반대로 해 보세요. ab12와 같은 압축된 문자열이 주어졌을 때 원래 문자열을 다시 만들어 보세요. 여러 자리 숫자로 된 반복 횟수는 어떻게 읽나요?

코드 초기화
def compress(s):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

s = "aabccc"

예상 출력

"a2bc3"