문제 링크 > 코딩테스트 연습 - 혼자서 하는 틱택토 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr





솔루션 >
def check(board, m):
# 가로
for r in board:
if r == [m, m, m]:
return True
# 세로
for c in range(3):
if [board[0][c], board[1][c], board[2][c]] == [m, m, m]:
return True
# 대각선
if [board[0][0], board[1][1], board[2][2]] == [m, m, m]:
return True
if [board[2][0], board[1][1], board[0][2]] == [m, m, m]:
return True
def solution(board):
board = [list(row) for row in board]
o_cnt = sum(r.count('O') for r in board)
x_cnt = sum(r.count('X') for r in board)
if not (x_cnt == o_cnt):
return 0
# O and X 둘 다 승리
if check(board, 'O') and check(board, 'X'):
return 0
# O가 승리
if check(board, 'O') and o_cnt != x_cnt + 1:
return 0
# X가 승리
if check(board, 'X') and o_cnt != x_cnt:
return 0
return 1'Development > Algorithm' 카테고리의 다른 글
| < 알고리즘 문제 풀이 > 호텔 대실 (0) | 2023.12.05 |
|---|---|
| < 알고리즘 문제 풀이 > 미로 탈출 (0) | 2023.12.05 |
| < 알고리즘 문제 풀이 > 당구 연습 (0) | 2023.12.05 |
| < 알고리즘 문제 풀이 > 리코쳇 로봇 (0) | 2023.12.05 |
| < 알고리즘 문제 풀이 > 광물 캐기 (0) | 2023.12.05 |