T9

면접 대비

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

요약
키패드 번호 입력을 단어로 변환하는 T9 시스템을 구현하여, 1번 키는 공백으로 처리하고 사전에 없는 단어는 각 글자를 *로 표시하는 문제입니다.
난이도

보통10점 중 5점

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

문제

T9은 휴대전화로 문자 메시지(SMS)를 빠르게 입력하려는, 빠르게 커지는 요구를 만족시키기 위해 개발된 시스템이다. 이 시스템은 휴대전화 메모리에 저장된 사전(dictionary)을 기반으로 동작한다. 단어를 입력할 때 각 글자마다 해당하는 키를 한 번씩만 누르면 된다. 그러면 누른 키에 대응하는 글자들과 일치하는, 사전의 첫 번째 단어가 화면에 표시된다.

휴대전화 키패드의 글자 배열은 다음 표와 같다.

123456789
공백A B CD E FG H IJ K LM N OP Q R ST U VW X Y Z

하나의 메시지는 공백 하나로 구분된 단어들의 나열로 이루어진다. 주어진 사전을 바탕으로 T9 시스템을 시뮬레이션하는 프로그램을 작성하라.

입력

첫째 줄에 사전에 들어 있는 단어의 개수를 나타내는 자연수 M (1 ≤ M ≤ 100)이 주어진다. 다음 M개의 줄에는 사전의 단어가 한 줄에 하나씩 주어진다. 단어들은 사전 순으로 오름차순 정렬되어 있다. 각 단어는 영어 대문자(A–Z)로만 이루어지며, 길이는 100 이하이다.

그다음 (M+2)번째 줄에는 휴대전화 키패드를 누른 횟수를 나타내는 자연수 N (1 ≤ N ≤ 100)이 주어진다.

이어지는 줄에는 누른 키의 번호를 나타내는, 집합 {1, 2, …, 9}에 속하는 N개의 자연수가 공백 하나로 구분되어 주어진다.

출력

첫째 줄에 T9 시스템이 만들어 낸 메시지를 출력한다. 사전에 없는 단어는 그 각 글자를 * 문자로 대체한다. 하나의 키 나열과 일치하는 단어가 여러 개라면 그중 첫 번째 단어를 선택한다.

예제4

  1. 예제 1

    입력
    3
    ABC
    BBB
    DEF
    10
    2 2 2 1 2 3 1 2 2 2
    
    예상 출력
    ABC ** ABC
    
  2. 예제 2

    입력
    4
    BOK
    GDJE
    KAKO
    STO
    11
    2 6 5 1 5 2 5 6 1 7 4
    
    예상 출력
    BOK KAKO **
    
  3. 예제 3

    입력
    5
    GGTMM
    GOTOVO
    HITNO
    ME
    NAZOVI
    15
    6 2 9 6 8 4 1 6 3 1 4 4 8 6 6
    
    예상 출력
    NAZOVI ME GGTMM
    
  4. 예제 4

    입력
    2
    HELLO
    WORLD
    5
    4 3 5 5 6
    
    예상 출력
    HELLO