아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Coverity 낱말 퍼즐

면접 대비

시간 제한2초메모리 제한256 MB

요약
8 by 8 문자 격자에서 목록의 모든 단어가 가로, 세로, 대각선 방향으로 나타나는지 판단합니다.
난이도

쉬움10점 중 2점

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

문제

낱말 퍼즐은 대문자 8개로 이루어진 줄 8개, 즉 8×8 격자다. 이 격자에는 비밀 단어가 최대 열 개까지 숨어 있다.

단어가 숨어 있다는 것은 다음 세 방향 중 하나로 연속한 칸을 읽었을 때 그 단어가 그대로 나온다는 뜻이다.

  1. 가로, 왼쪽에서 오른쪽으로
  2. 세로, 위에서 아래로
  3. 대각선, 왼쪽 위에서 오른쪽 아래로

다른 방향은 인정하지 않는다. 격자의 끝에서 반대쪽 끝으로 이어 읽을 수 없고, 한 줄의 끝에서 다음 줄의 처음으로 이어 읽을 수도 없다.

찾아야 할 단어 목록과 격자가 주어진다. 단어가 모두 격자에 숨어 있는지 판정하라.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤1001 \le T \le 100)가 주어진다.

각 테스트 케이스의 첫 줄에는 찾아야 할 단어의 개수 NN (1≤N≤101 \le N \le 10)이 주어진다. 이어지는 NN개의 줄에는 단어가 한 줄에 하나씩 주어지며, 각 단어는 길이가 1 이상 8 이하이고 대문자 A부터 Z까지로만 이루어진다.

그다음 8개의 줄에는 각각 대문자 8개로 이루어진 문자열이 주어진다. 이 중 ii번째 줄은 낱말 퍼즐의 위에서 ii번째 가로줄을 왼쪽부터 오른쪽으로 적은 것이다.

같은 단어가 두 번 이상 주어질 수 있다.

출력

각 테스트 케이스마다 한 줄에 답을 출력한다. NN개의 단어가 모두 격자에 숨어 있으면 Yes를, 하나라도 숨어 있지 않으면 No를 출력한다.

예제2

  1. 예제 1

    입력
    2
    8
    BLAST
    COVERITY
    CPSC
    PRIZES
    PROBLEMS
    PSC
    SOLVING
    TESTING
    SPRIZESS
    SROSNPSP
    COVERITY
    ABLASTIG
    NLSVINGC
    TESTINGP
    EMSPONYS
    PSYNPSGC
    2
    COOL
    LOL
    OCCOOOCL
    OCCLCLOO
    OLOOCLOL
    LLOOCOOC
    LOCCCOLL
    COCCOLLO
    OLOLOCOL
    LLOOCCOO
    
    예상 출력
    Yes
    No
    
  2. 예제 2

    입력
    2
    3
    CODE
    SCAN
    BUG
    CODEQQQQ
    QSQQQQQQ
    QQCQQQQQ
    QQQAQQQQ
    QQQQNQQQ
    BQQQQQQQ
    UQQQQQQQ
    GQQQQQQQ
    2
    CODE
    BUGS
    CODEQQQQ
    QSQQQQQQ
    QQCQQQQQ
    QQQAQQQQ
    QQQQNQQQ
    BQQQQQQQ
    UQQQQQQQ
    GQQQQQQQ
    
    예상 출력
    Yes
    No