※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 13227번 문제인 TicTacToe이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/13227 

 

13227번: TicTacToe

We want to create a program to check the result of a tic tac toe game. A tic tac toe board is a 3x3 grid. Each position can contain either X or O. The game finishes with a winner when a player creates a straight line of 3 equal symbols. The next 3 boards s

www.acmicpc.net

틱택토에서 줄을 완성시킬 수 있는 경우는 가로방향으로 세가지, 세로방향으로 세가지, 대각선방향으로 두가지로 총 8가지가 있다.

 

위의 각 경우에 대하여 각 칸들이 빈 칸이 아닌 같은 문자('O' 또는 'X')로 이루어져있는지를 확인해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

bool chk;
string board[3];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	for (int i = 0; i < 3; i++) cin >> board[i];

	if (board[0][0] != '.' && board[0][0] == board[0][1] && board[0][1] == board[0][2]) chk = 1;
	if (board[1][0] != '.' && board[1][0] == board[1][1] && board[1][1] == board[1][2]) chk = 1;
	if (board[2][0] != '.' && board[2][0] == board[2][1] && board[2][1] == board[2][2]) chk = 1;
	if (board[0][0] != '.' && board[0][0] == board[1][0] && board[1][0] == board[2][0]) chk = 1;
	if (board[0][1] != '.' && board[0][1] == board[1][1] && board[1][1] == board[2][1]) chk = 1;
	if (board[0][2] != '.' && board[0][2] == board[1][2] && board[1][2] == board[2][2]) chk = 1;
	if (board[0][0] != '.' && board[0][0] == board[1][1] && board[1][1] == board[2][2]) chk = 1;
	if (board[0][2] != '.' && board[0][2] == board[1][1] && board[1][1] == board[2][0]) chk = 1;

	if (chk) cout << "YES";
	else cout << "NO";
}
728x90

+ Recent posts