부정 단속반
면접 대비시간 제한1초메모리 제한128 MB
별표를 와일드카드로 취급해 스캔 코드와 9자리 등록 코드들을 대조하고 일치하는 코드를 입력 순서대로 출력합니다.
문제
디폴트 시의 도심으로 매일 들어오는 차량은 주차 공간보다 훨씬 많다. 시 의회는 차량이 도심 도로에 넘쳐 주차되는 문제를 막으려고 주차 요금제를 도입했다. 요금 징수는 자동 판독기가 맡는다. 판독기는 차량 번호판을 촬영해 번호판에 적힌 숫자와 문자를 인식하고, 그 코드를 차량 등록 데이터베이스에서 찾아 요금을 냈는지 확인하거나 내지 않은 차주에게 과태료를 부과한다.
요금제를 시행하자마자 부정 행위가 나타났다. 일부 차주는 주차하는 동안 번호판의 숫자나 문자 몇 개를 종이로 가린다. 그러면 지금의 판독기는 등록 코드를 온전히 읽지 못해 과태료를 부과할 수 없다.
시 의회는 이 부정 행위를 막을 방법을 설계하려고 부정 단속반(FBI)을 꾸렸다. 단속반이 택한 방향은 차종이나 색상처럼 판독기가 인식하는 차량 특징을 늘리고, 그 시각에 다른 곳에 있었다고 확인된 차량을 후보에서 빼는 것이다. 이 정보로 등록 데이터베이스에서 뒤져야 할 범위를 좁힐 수 있다.
당신은 단속반에서 일한다. 동료들이 차량 특징을 분석하는 인식 소프트웨어를 이미 다 만들어 두어서, 촬영된 차의 것일 수 있는 등록 코드 목록을 당신에게 넘겨준다. 이 목록과 번호판에서 읽어낸 코드를 받아 일치하는 등록 코드를 모두 찾아라. 읽어낸 코드는 일부 자리를 인식하지 못한 상태일 수 있다.
입력
첫째 줄에 판독기가 읽어낸 코드 9글자가 주어진다. 각 글자는 숫자, 영어 대문자, 또는 *(별표)다. 별표는 판독기가 읽지 못한 자리를 뜻한다.
둘째 줄에 데이터베이스에서 가져온 등록 코드의 개수 ()이 주어진다.
다음 개 줄에 등록 코드가 한 줄에 하나씩 주어진다. 등록 코드는 숫자와 영어 대문자로 이루어진 9글자다. 개 코드는 모두 다르다.
출력
첫째 줄에 판독된 코드와 일치하는 데이터베이스 코드의 개수 ()를 출력한다. 9개 자리마다 두 코드의 글자가 같거나 판독된 코드의 글자가 *이면 두 코드는 일치한다.
다음 개 줄에 일치하는 코드를 입력에 나온 순서대로 한 줄에 하나씩 출력한다.