솔리테어

면접 대비

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

요약
8x8 판에 놓인 네 개의 동일한 말이 슬라이드와 점프만으로 8수 이내에 두 번째 배치에 도달하는지 판정한다.
난이도

보통10점 중 7점

유형
BFS, 그래프, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

솔리테어는 8×88 \times 8 체스판에서 진행하는 게임이다. 행과 열은 11부터 88까지 번호가 매겨져 있으며, 행은 위에서 아래로, 열은 왼쪽에서 오른쪽으로 센다.

판 위에는 서로 구별되지 않는 말 네 개가 놓여 있다. 한 번의 이동에서 다음 두 가지 중 하나를 할 수 있다.

  • 말을 상하좌우로 인접한 빈 칸으로 옮긴다, 또는
  • 상하좌우로 인접한 칸에 말이 하나 있을 때 그 말을 뛰어넘어 바로 그 너머의 빈 칸에 내려놓는다.

위 그림의 배치에서 44행 44열의 말은 네 가지로 움직일 수 있다. 한 행 위로, (바로 아래 말을 뛰어넘어) 두 행 아래로, 한 열 왼쪽으로, 또는 (바로 오른쪽 말을 뛰어넘어) 두 열 오른쪽으로 갈 수 있다.

두 배치가 주어질 때, 첫 번째 배치에서 최대 88번의 이동으로 두 번째 배치에 도달할 수 있는지 판단하라.

입력

두 줄이 주어지며, 각 줄은 말 네 개의 배치 하나를 나타낸다.

각 줄에는 정수 88개 a1,a2,…,a8a_1, a_2, \ldots, a_8이 공백 하나로 구분되어 주어진다. 1≤j≤41 \le j \le 4인 각 jj에 대해 쌍 (a2j−1,a2j)(a_{2j-1}, a_{2j})는 말 하나의 행 번호와 열 번호이다. 모든 좌표는 11 이상 88 이하이며, 한 배치 안의 네 말은 서로 다른 네 칸을 차지한다.

출력

두 번째 배치가 첫 번째 배치에서 최대 88번의 이동으로 도달 가능하면 YES를, 그렇지 않으면 NO를 출력한다.

예제2

  1. 예제 1

    입력
    4 4 4 5 5 4 6 5
    2 4 3 3 3 6 4 6
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    1 1 1 2 2 1 2 2
    7 7 7 8 8 7 8 8
    
    예상 출력
    NO