난이도
Level2
풀이
def isWin(board,x,y):
if board[x]=='OOO' or board[x]=='XXX':
return True
if board[0][y]==board[1][y]==board[2][y]=='O' or board[0][y]==board[1][y]==board[2][y]=='X':
return True
if x-y==0:
if board[0][0]==board[1][1]==board[2][2]=='O' or board[0][0]==board[1][1]==board[2][2]=='X':
return True
if x+y==2:
if board[0][2]==board[1][1]==board[2][0]=='O' or board[0][2]==board[1][1]==board[2][0]=='X':
return True
return False
def solution(board):
answer = 1
cntO=0
cntX=0
OList=[]
XList=[]
for i in range(3):
for j in range(3):
if board[i][j]=='O':
cntO+=1
OList.append([i,j])
elif board[i][j]=='X':
cntX+=1
XList.append([i,j])
for ox,oy in OList:
if isWin(board,ox,oy)==True:
if cntX+1!=cntO:
answer=0
for xx,xy in XList:
if isWin(board,xx,xy)==True:
if cntO!=cntX:
answer=0
for ox,oy in OList:
for xx,xy in XList:
if isWin(board,ox,oy)==True and isWin(board,xx,xy)==True:
answer=0
if cntO>=cntX+2:
answer=0
if cntX>cntO:
answer=0
return answer
'알고리즘' 카테고리의 다른 글
BOJ 아기상어 (16236번) (자바 / 파이썬 풀이) (0) | 2023.04.06 |
---|---|
BOJ 미로탐색 (2178번) (0) | 2023.04.06 |
BOJ 15787번(기차가 어둠을 헤치고 은하수를) (0) | 2023.04.05 |
프로그래머스 추억 점수(Java/Python) (0) | 2023.04.05 |
BOJ 1354번(무한 수열2) (0) | 2023.04.04 |