문제 번호 1463. -- 허프만 코드 풀기, 5점

1463: 허프만 코드 풀기, 5점

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 17  해결 문제 수: 11
[제출][채점 상황 열람][게시판]

문제 설명

텍스트가 허프만 코드로 압축되었을 때, 각 원래 텍스트안에 존재하는 문자(심볼)은 0 혹은 1로 이뤄진 비트로 표현된다.

비트 문자열로 표현된 심볼은 다른 심볼의 접두사(prefix)가 될 수 없다.

비트 문자열과 각 허프만 코드로 압축된 심볼의 정보가 입력되었을 때, 이를 원래 텍스트로 바꾸는 프로그램을 작성하라.

예를 들어 허프만 코드로 압축된 비트 문자열이 "101101"이고 A는 "00"으로, B는 "10"으로, C는 "01"로, D는 "11"로 표현되어 있다고 할 경우, 앞에서부터 읽어나가며 압축된 비트 문자열을 원문자로 변환할 경우 "BDC"가 된다.

입력

입력의 첫번째 줄에는 50자 이하의 비트문자열로 이뤄진다.
그 다음 줄에는 사용된 심볼의 갯수 N(1≤N≤26)이 입력된다.
그 다음 줄 부터 N개의 줄에는 허프만 코드로 압축된 각 심볼들의 정보가 주어지며, 심볼은 입력된 순서대로 A, B, C, ... 를 뜻한다.

출력

허프만 코드로 압축을 하기 전의 원래 텍스트를 출력한다.

입력 예시

101101 
4 00 10 01 11

출력 예시

BDC

도움말

출처

[제출][채점 상황 열람]