압축 풀기2 > 문제은행



실전대비 Level8

1762 : 압축 풀기2

제한시간: 1000 ms    메모리제한: 256 MB
해결횟수: 5 회    시도횟수: 9 회   



압축을 하는 가장 간단한 방법은 반복되는 부분문자열(sustring)을 하나로 뭉쳐놓는 것이다. 

예를 들어 문자열 “ABC”가 “ABCABCABC”와 같이 반복될 경우 이를 [3ABC]로 바꾸어 압축을 하는 것이다. 

다시 말해 부분문자열 X가 X...X와 같이 D번 나타날 경우 [DX]로 압축을 할 수 있다. 

연속된 부분 문자열은 최대 9회 반복이 가능하다고 가정하자. 

이런 방법을 이용해서 문자열을 “CABABABABABABC“, ”C[6AB]C", “C[2[3AB]]C”로 압축할 수 있다.

압축된 문자열이 주어졌을 때, 원 문자열로 복원하는 프로그램을 구현하라.




입력은 20개 이하의 여러개의 테스트케이스로 이루어진다. 테스트 케이스는 한줄에 하나의 문자열로 이루어져 있으며, 문자열은 대문자 알파벳, 그리고 숫자 1이상 9이하의 숫자, 그리고 문자 ‘[’,‘ ’]‘로 이루어져 있다. 문자열의 최대 길이는 50자 이하이다.

문자 #가 한줄에 들어올 경우 입력을 종료한다.




입력된 테스트 케이스에 대한 복원된 문자열을 한줄에 하나씩 출력한다. 복
원되는 문자열의 길이는 1,000문자 이하의 문자이다.



C[6AB]C 
C[2[3AB]]C 
CO[1N]TEST 
[2[2AB]] 
AAAAAAAAAAAAAAAAAAAAA 
#
CABABABABABABC 
CABABABABABABC 
CONTEST 
ABABABAB 
AAAAAAAAAAAAAAAAAAAAA






HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 031-388-0999 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.