ํฑํํ ๊ฒ์์์ ๋ฐ์ํ ์ ์๋ ์ต์ข ์ํ์ธ์ง๋ฅผ ํ๋ณํ์์ค.
์ด๊ฒ ์ ๋ฐฑํธ๋ํน ๋ถ๋ฅ์...???
์๋ฌดํผ ๊ฒ์์ด ์ข ๋ฃ๋ ์ํ๋ ์งํ์ค์ด๋๋ฅผ ๋ฌป๋ ๊ฒ์ด๋ค. ์ข ๋ฃ๋ ์ํ๋ผ๊ณ ํ๋ฉด ๋ ์ค ํ๋๊ฐ ์ด๊ฒผ๊ฑฐ๋, ๋ ๋ ๊ณณ์ด ์๊ฑฐ๋ ๋ ์ค ํ๋์ผ๊ฒ์ด๋ค. X๊ฐ ๋จผ์ ๋๊ณ O๊ฐ ๋ค์์ ๋๋๋ค๊ณ ํ์ผ๋ฏ๋ก, X๊ฐ ์ด๊ธฐ๋ ค๋ฉด ํญ์ O๋ณด๋ค 1๊ฐ ๋ ๋ง์ ์ํ์ผ ๊ฒ์ด๋ค. ๋ฐ๋๋ก O๊ฐ ์ด๊ธฐ๋ ค๋ฉด ๋์ ๊ฐ์๊ฐ ๊ฐ์์ผ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ค ๋์์ ๋์ ์ํ๋? X๋ 5๊ฐ O๋ 4๊ฐ๋ฉด ๋๋ค. ๋จ ์ด๋, ๋ ์ค ํ ๋ช ๋ ์ด๊ธด ์ํ๋ฉด ์ ๋๋ค.
OXOXOXOXX
OXO
XOX
OXX
์ ํํ๊ฒ๋ O๊ฐ ์ด๊ธด ์ํ๋ฉด ์ ๋๋ค. 9์นธ์ด ๋ค ์ฐผ๋ค๋ฉด X๊ฐ O๋ณด๋ค 1๋งํผ๋ง ๋ ๋ง์ ๊ฒ์ด๋ฏ๋ก.
def win(s, board):
if board[0] == board[4] == board[8] == s:
return True
if board[2] == board[4] == board[6] == s:
return True
for i in (0, 3, 6):
if board[i] == board[i+1] == board[i+2] == s:
return True
for j in range(3):
if board[j] == board[j+3] == board[j+6] == s:
return True
return False
def game(board):
x_count = board.count('X')
o_count = board.count('O')
x_wins = win('X', board)
o_wins = win('O', board)
if x_count == o_count+1 and x_wins and not o_wins:
return True
if x_count == o_count and not x_wins and o_wins:
return True
if not x_wins and not o_wins and x_count == 5 and o_count == 4:
return True
return False
while True:
board = input()
if board == 'end':
break
if game(board):
print('valid')
else:
print('invalid')