압축된 단어 풀기
면접 대비시간 제한1초메모리 제한256 MB
중첩된 압축 단어를 안쪽부터 이어 붙이고 묶음마다 n번 반복해 펼칩니다.
문제
스티브는 글을 압축하는 방법을 하나 만들었다. 실제로 길이가 줄어들지 않을 때도 있다. 스티브는 단어 하나만 다루며, 다음 규칙으로 "압축된 단어"를 정의한다.
- 소문자 한 글자는 압축된 단어이다.
- 은 압축된 단어이다. 여기서 와 은 음이 아닌 정수이고, 각 는 압축된 단어이다.
한 글자짜리 압축된 단어는 압축하지 않은 단어와 같다. 압축된 단어 을 푸는 방법은 이렇다. 각 를 먼저 풀고, 푼 결과를 순서대로 이어 붙여 새 단어를 만든 다음, 그 단어를 번 이어 붙인다. 예를 들면 이렇다.
x는x로 풀린다.(t 3)은ttt로 풀린다.(a (b c 2) 3)은abcbcabcbcabcbc로 풀린다.
압축된 단어를 푸는 프로그램을 작성하시오.
입력
입력은 테스트 케이스 하나 이상으로 이루어진다. 각 테스트 케이스는 올바르게 만들어진 압축된 단어 하나이고 한 줄을 차지한다. 줄의 끝은 $ 문자로 표시한다. 입력의 마지막 줄에는 $ 하나만 있으며(앞뒤에 공백이 있을 수 있다), 이 줄은 테스트 케이스가 아니다. 입력에 있는 압축된 단어는 모두 위 규칙에 맞다. 압축된 단어의 앞, 뒤, 중간에 공백이 들어갈 수 있고, 이런 공백은 무시한다. 글자와 숫자 사이에는 공백이 적어도 하나 있다.
출력
각 테스트 케이스마다 푼 단어를 한 줄에 출력한다. 줄바꿈 말고는 출력에 공백이 없어야 한다. 푼 결과가 빈 단어일 수 있고, 그때는 빈 줄을 출력한다.