문제1123--삼목(tic-tac-toe) 게임 판정하기

1123: 삼목(tic-tac-toe) 게임 판정하기

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 419  통과: 50
[제출] [채점기록] [묻고답하기] [만든사람:]

문제 설명

삼목(tic-tac-toe)  게임은 3x3 보드에서 두 사람이 번갈아 가며 돌을 두면서 같은 돌이 나란히 3개가 놓이면 이기는 게임이다.


tic tac toe 이미지 검색결과 


삼목 게임의 진행 과정에서 나타날 수 있는 보드 형태에 따라 정상적인 게임 진행 중인지 아닌지, 승부가 났다면 누가 이겼는지를 판단하는 프로그램을 작성하시오. 입력은 1, 2로 들어오며 항상 1이 선수로 시작한다고 가정한다. 이 때 보드 상에 놓여진 1과 2의 개수와 위치를 판단하여 현재 게임이 정상적으로 번갈아 두고 있는 상태인지 아닌지, 만약 정상적인 상태로 게임이 종료되었다면 누가 이겼는지, 아니면 비겼는지를 출력한다. 모든 돌이 놓이기 전에 승부가 났다면 더 이상 돌을 두지 않아야 정상이다.


입력 설명

첫 줄에 테스트케이스 수(t, 1 <= t <= 10)가 입력된다. 다음 줄부터 보드의 상태를 나타내는 숫자 0, 1, 2가 3 x 3 행렬 형태로 t 세트만큼 입력된다. 이 때, 0은 빈 공간, 1은 1번 선수가 둔 공간, 2는 2번 선수가 둔 공간을 의미한다.


출력 설명

각 테스트케이스별로 보드의 상태를 확인하여 승부가 나지 않았는데 정상적인 상태이면 YES, 비정상적인 상태이면 NO를 출력하고 정상적인 상태에서 게임이 종료되었다면 누가 이겼는지를 1 또는 2로 구분하여 출력하고, 만약 비긴 경우라면 DRAW를 한 줄에 하나씩 출력한다.

입력 예시 Copy

4
0 0 0
0 1 0
0 0 0
1 2 2
2 1 1
2 1 1
0 2 2
1 1 2
2 2 0
2 1 1
1 2 2
1 2 1

출력 예시 Copy

YES
1
NO
DRAW

출처/분류