전화번호 다이얼링
면접 대비시간 제한2초메모리 제한1024 MB
정렬된 단어 목록과 전화번호들이 주어질 때, 각 전화번호의 숫자와 키패드 대응이 일치하는 단어를 사전순으로 출력합니다.
문제
재앙이 Billboards And Phone-numbers Company를 덮쳤다. Phone-numbers의 하이픈은 약어를 만들려고 일부러 넣은 것이다.
데이터베이스 버그 때문에 등록된 전화번호마다 있던 연상 문구가 모두 사라졌다. 연상 문구는 보통 빌보드에 실려, 광고를 보는 사람이 전화번호를 더 쉽게 기억하도록 돕는다. 연상 문구로 번호를 누르려면 그림 D.1처럼 각 글자가 적힌 숫자 키를 누르면 된다. 예를 들어 "1-800-BAPC"는 "1-800-2272"로 누른다.
이 정보와 주어진 유효 단어 목록을 이용해 등록된 각 전화번호에 가능한 연상 문구를 복원하라. 연상 문구는 단어 목록에 있는 단어 하나로만 이루어진다. 입력에는 "1-800-" 같은 접두어를 뺀, 연상 문구와 맞춰야 하는 전화번호 부분만 주어진다.
그림 D.1: 일부 숫자 키에 여러 글자가 배정된 전화기 키패드.
입력
첫 줄에 단어의 개수 과 전화번호의 개수 이 주어진다(, ).
다음 개 줄에는 단어 가 한 줄에 하나씩 주어진다(). 단어는 영어 소문자(a-z)로만 이루어진다. 단어는 서로 다르며 사전순으로 주어진다.
마지막 개 줄에는 전화번호 가 한 줄에 하나씩 주어진다(). 연상 문구의 글자에 대응하는 2-9 숫자로만 이루어진다.
출력
각 전화번호마다 그 번호에 맞는 유효한 연상 문구인 단어의 개수를 출력하고, 이어서 그 단어들을 사전순으로 출력한다.