[15회 EPPER] 문자열 압축
우측 버튼을 눌러 기기를 연결해주세요.
문제 정보
[E-PPER] 7. 문자열 압축 *
매우 쉬움
유형
프로그래밍
배점
100
참여자
220
정답률
92.7%
4
8

**

문자열에 등장하는 문자의 종류가 한정되어 있는 경우에는 연달아 등장하는 문자의 출현 횟수를 기록함으로써 문자열의 저장에 소요되는 기억 공간을 줄일 수 있습니다특히등장하는 문자들이 두 가지 뿐일 때에는 두 가지의 문자가 번갈아서 나타난다고 볼 수 있기 때문에 기억 공간을 더욱 줄일 수 있습니다. 0 1로만 이루어진 비트열의 경우에는 같은 비트가 연속해서 등장하는 횟수들을 기록하여 저장 공간을 줄일 수 있습니다예를 들어첫문자가 0으로 시작하는 00011110의 경우, CDA라고 표기하여 저장 공간을 줄일 수 있는데, C 0 3개 연속으로 등장하였다는 의미이고, D 1 4, A 0 1개가 연속하여 등장했다는 의미입니다.

 

만약비트열이 0이 아니라 1로 시작하는 경우에는 저장 공간의 제일 앞에 1을 붙여서 혼돈을 방지하도록 합니다예를 들어, 110100의 경우에는 1BAAB로 표시하면 됩니다주어진 문자열이 “111100100011” 일 때 출력할 문자열은 “1DBACB” 입니다이 문자열 압축 알고리즘을 구현하는 함수 solution() 을 완성하세요.


[제한사항]

-입력으로 주어지는 문자열 src 의 길이는 1 이상 10,000 이하이며이 문자열에는 “0”  “1” 외의 문자는 등장하지 않음을 가정합니다.

-동일한 문자가 26회이상 연달아 등장하는 경우에는 Z로 대응되며동일한 문자가 27회 이상 연달아 등장하는 경우는 입력으로 주어지지 않습니다.


[입출력 예 설명]


#1

  • 입력: "000"
  • 출력: "C"
  • 입출력 예 설명: "0"이 연이어 세 번등장하므로 출력할 문자열 answer 는 “C”입니다.


#2

  • 입력: "11111"
  • 출력: "1E"
  • 입출력 예 설명: 1” 이 다섯 번 등장하므로 출력할 문자열 answer  “1E” 입니다.

#3

  • 입력: "00011110"
  • 출력: "CDA"
  • 입출력 예 설명: "0"으로 시작하는 문자열이며 0은 연이어 세 번 등장하므로 출력할 문자열 answer의 첫 글자는 3 을 나타내는 “C” 입니다그 뒤에는 “1” 이 네 번, 0 이 한 번 등장하였으므로 "DA” 를 덧붙입니다출력할 문자열 answer 의 전체 내용은 “CDA”입니다.

#4

  • 입력: "111100100011"
  • 출력: "1DBACB"
  • 입출력 예 설명: "1"로 시작하는 문자열이며, 1은 연이어 네 번 등장하므로 출력할 문자열 answer 1D로 시작합니다그 뒤에는 0이 두 번, 1이 한 번 , 0이 세 번, 1이 두 번 등장하므로 출력할 문자열 answer는 규칙에 의해 1DBACB가 됩니다.
입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
00000000111111111111111111111111110000000000000000
출력
HZP
예시 2
입력
00000000000000000000010000000011111111111111000000
출력
UAHNF
예시 3
입력
0000000000000000001111111111111111111111000000000000000111111111111111111111100111100000000000000000
출력
RVOVBDQ
예시 4
입력
000001111100000
출력
EEE
예시 5
입력
0000010101010110111111011111111111111111110000000000000000000001111110000000111111110000000000111111100000000010010101010010111010111100100101010101110101001010111011111111111111100000000000000000000000011111111111111111111111000000000000000000111111111
출력
EAAAAAAAABAFASUFGHJGIABAAAAAAABAACAAADBABAAAAAAAACAAAABAAAACAOXWRI
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)