지도

면접 대비

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

요약
각 시나리오에서 지도 위에 비밀 굴착기의 모양이 회전 없이 정확히 몇 번 나타나는지 센다. 굴착기 그림은 불필요한 눈을 잘라낸 상태이므로, 그림의 X와 점 칸이 모두 지도와 일치해야 한다.
난이도

보통10점 중 4점

유형
완전 탐색, 구현, 문자열 매칭, 행렬
정답자
아직 제출이 없습니다

문제

남극을 촬영한 항공 사진을 조사하여, 비밀리에(그리고 불법으로) 설치된 석유 시추 시설의 흔적을 찾아 그 개수를 보고하려고 합니다.

여러 개의 시나리오가 주어집니다. 각 시나리오는 비밀 시추 시설을 나타내는 이미지 하나와 눈밭 일부를 나타내는 지도 하나로 이루어집니다. 눈은 점(.)으로, 건물의 일부는 대문자 X로 표시됩니다. 이미지에 있는 시추 시설과 완전히 똑같은 모양이 지도 위에 몇 번 나타나는지 세어야 합니다. 여기서 "완전히 똑같다"는 것은 회전이나 반전(거울상)은 세지 않는다는 뜻으로, 방향이 같은 경우만 인정합니다.

입력

첫 번째 줄에는 시나리오의 개수를 나타내는 정수 하나가 주어집니다.

각 시나리오는 두 개의 양의 정수 LiL_i와 CiC_i가 적힌 줄로 시작합니다. 이는 각각 시추 시설 이미지의 줄 수와 열 수이며, 두 값 모두 1 이상 12 이하입니다.

이어서 LiL_i개의 줄이 주어지고, 각 줄은 CiC_i개의 문자로 이루어집니다. 각 문자는 대문자 X 또는 점(.)입니다. 이 줄들은 시추 시설의 이미지를 나타내며, X(시설) 주위에 불필요한 눈(.)이 남지 않도록 잘려 있습니다.

그다음 줄에는 두 개의 정수 LmL_m과 CmC_m이 주어지며, 이는 검색할 지도의 줄 수와 열 수입니다. 두 값 모두 1 이상 32 이하이고, Lm≥LiL_m \ge L_i이며 Cm≥CiC_m \ge C_i입니다.

이어서 LmL_m개의 줄이 주어지고, 각 줄은 CmC_m개의 문자(대문자 X 또는 점 .)로 이루어집니다. 이 줄들은 검색 대상인 지도를 나타냅니다.

출력

각 시나리오마다, 지도에서 비밀 시추 시설이 발견된 횟수를 정수 하나로 한 줄에 출력합니다. 어떤 위치가 일치한다고 인정되려면 이미지를 그 위치에 겹쳐 놓았을 때 모든 칸이 정확히 같아야 합니다. 즉 이미지의 X(건물) 칸뿐 아니라 .(눈) 칸까지 지도의 같은 위치와 일치해야 합니다.

예제3

  1. 예제 1

    입력
    1
    2 3
    XXX
    .X.
    5 16
    ...XXX...X.X.XXX
    X...X...XX.X.XX.
    ....X.X.........
    X....X....XXX...
    ....XXX....X....
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1
    1 1
    X
    1 1
    X
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1
    1 1
    X
    3 3
    X.X
    .X.
    X.X
    
    예상 출력
    5