만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

바둑알 점프

면접 대비

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

요약
벽, 빈 칸, 돌이 놓인 N×N 보드에서 돌이 이웃한 돌을 뛰어넘어 한 개만 남을 수 있는지 판단합니다.
난이도

보통10점 중 5점

유형
백트래킹, 행렬, 완전 탐색
정답자
아직 제출이 없습니다

문제

바둑알 점프는 판 위에 있는 바둑알을 하나만 남기고 모두 없애는 게임이다. 바둑알은 가로, 세로, 대각선으로 인접한 바둑알 하나를 뛰어넘어 움직일 수 있다. 움직이면 뛰어넘은 바둑알은 없어진다. 뛰어넘을 바둑알이 없으면 움직일 수 없다.

예를 들어, \[그림1]에서 왼쪽 상단 바둑알을 오른쪽 하단 대각선 방향으로 움직이면 \[그림2]와 같이 된다. \[그림3]의 오른쪽 하단 바둑알은 뛰어넘을 바둑알이 없으므로 움직일 수 없다.

바둑알이 놓이는 판은 N×NN \times N 정사각 행렬이고, 한 칸은 1×11 \times 1 행렬이다. 판은 빈 칸 또는 벽으로 구성된다. 바둑알은 빈 칸으로만 이동할 수 있고 벽을 뛰어넘을 수 없다. 바둑알이 없어진 칸은 빈 칸이 된다. 바둑알 점프는 바둑알 하나를 골라 뛰어넘어 그 바둑알을 없애고, 남은 바둑알 중 하나를 다시 골라 뛰어넘는 과정을 반복하여 바둑알을 1개만 남기면 승리한다.

판 위의 바둑알 배치가 주어진다. 바둑알 점프로 승리할 수 있는지 판별하는 프로그램을 작성하라.

입력

첫 줄에 양의 정수 NN이 주어진다. 이는 N×NN \times N 정사각 행렬의 한 변의 길이이다. 다음 NN개의 줄에 판의 상태가 주어진다. 각 줄에는 NN개의 정수가 공백으로 구분되어 주어지며, 각 정수는 0, 1, 2 중 하나이다. 0은 빈 칸, 1은 벽, 2는 바둑알을 뜻한다.

출력

바둑알 점프로 바둑알을 1개만 남길 수 있으면 Possible을, 없으면 Impossible을 출력한다.

제한

3≤N≤103 \leq N \leq 10

판의 둘레에 있는 칸은 모두 벽이며, 모든 바둑알은 빈 칸에 위치한다.

예제3

  1. 예제 1

    입력
    5
    1 1 1 1 1
    1 2 2 0 1
    1 2 2 0 1
    1 0 0 0 1
    1 1 1 1 1
    
    예상 출력
    Possible
    
  2. 예제 2

    입력
    5
    1 1 1 1 1
    1 2 2 0 1
    1 2 0 0 1
    1 0 0 2 1
    1 1 1 1 1
    
    예상 출력
    Impossible
    
  3. 예제 3

    입력
    3
    1 1 1
    1 2 1
    1 1 1
    
    예상 출력
    Possible