만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

바이킹 해커

면접 대비

시간 제한1초메모리 제한1024 MB

요약
이진 문자열을 4비트씩 나누고, 표에서 각 조각에 대응하는 문자를 찾아 출력합니다. 표에 없는 조각은 ?로 출력합니다.
난이도

쉬움10점 중 2점

유형
해시맵, 문자열
정답자
아직 제출이 없습니다

문제

바이킹 전사들이 뛰어난 전사였다는 사실은 대부분 알고 있지만, 실력 있는 프로그래머이기도 했다는 사실은 덜 알려져 있다. 룬석 하나를 새기는 프로그램을 짜는 데는 많은 시간이 들었고, 실수할 여지도 거의 없었다. 안타깝게도 이 때문에 룬석은 거리낌 없이 활보하던 바이킹 해커들의 표적이 되기 쉬웠다.

당신은 문자 목록과 그 이진 표현이 담긴 참고표를 이용해 이 시대의 룬석 하나를 번역하는 임무를 맡았다. 바이킹에게는 고급 언어가 없었고, 코드를 0과 1로 직접 작성했다. 대부분의 룬석이 결국 해킹당했기 때문에 일부 코드가 잘못되었을 위험이 있다.

입력

첫 줄에는 문자의 개수 TT (1≤T≤161 \le T \le 16)가 주어진다. 이어서 TT개의 줄이 주어지며, 각 줄에는 문자 하나(영문 소문자 a-z, 대문자, 숫자 중 하나)와 그 이진 표현이 차례로 주어진다. 이진 표현은 항상 길이가 4인 0과 1의 열이다. 마지막 줄에는 번역할 룬석을 나타내는 0과 1로 이루어진 길이 NN (1≤N≤4 0001 \leq N \leq 4\,000)의 문자열이 주어진다. NN은 4의 배수이다. 입력에는 같은 이진 표현을 가진 서로 다른 문자가 없다.

출력

번역 결과인 NN개의 문자를 한 줄에 출력한다. 올바르게 번역할 수 없는 부분에는 ?를 출력한다.

힌트

0100은 a로, 1000은 b로 번역된다는 것을 알 수 있다. 번역할 문자열 0100100000101000은 0100, 1000, 0010, 1000으로 나뉜다. 세 번째 부분만 번역할 수 없으므로 출력은 ab?b이다.

예제2

  1. 예제 1

    입력
    2
    a 0100
    b 1000
    0100100000101000
    
    예상 출력
    ab?b
    
  2. 예제 2

    입력
    6
    2 0101
    P 1101
    1 1010
    4 1011
    O 1110
    0 0010
    110111110101010010101011
    
    예상 출력
    P?2?14