페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#1762

압축 풀기2 1s 256MB

문제

압축을 하는 가장 간단한 방법은 반복되는 부분문자열(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

출처

online contest
로그인해야 코드를 작성할 수 있어요.