728x90
๋ฐ์ํ
https://school.programmers.co.kr/learn/courses/30/lessons/160585
def solution(b):
o, x = sum([arr.count('O') for arr in b]), sum([arr.count('X') for arr in b])
if 0 <= o-x <= 1:
rb = [b[0][i]+b[1][i]+b[2][i] for i in range(3)]
winO, winX = 0, 0
for i, j in zip(b, rb):
if 'OOO' in [i,j]: winO += 1
if 'XXX' in [i,j]: winX += 1
diagonal = [b[0][0] + b[1][1] + b[2][2], b[0][2] + b[1][1] + b[2][0]]
winO += diagonal.count('OOO')
winX += diagonal.count('XXX')
if winX and winO: return 0
if winO and winX == 0 and o==x: return 0
if winX and winO == 0 and o!=x: return 0
return 1
return 0
"""
ํฑํํ ๊ฐ ๋ง๋ ๊ท์น์ ์ผ๋ง ์๋ค๊ณ ์๊ฐํ๋ค.
1. O๊ฐ ์ ๊ณต์ด๊ธฐ ๋๋ฌธ์ X์ ๊ฐ์๊ฐ ๊ฐ๊ฑฐ๋ O๊ฐ 1๊ฐ ๋ ๋ง์์ผ ํจ.
2. O์ X๊ฐ ๋๋ค 3๊ฐ๊ฐ ์ฐ์์ผ๋ก ์์ ์ ์๋ค.
3. O๊ฐ ์ด๊ฒผ๋ค๋ฉด O์ ๊ฐ์๊ฐ 1๊ฐ ๋ ๋ง์์ผ ํจ.
4. X๊ฐ ์ด๊ฒผ๋ค๋ฉด X์ ๊ฐ์๊ฐ O์ ๊ฐ์์ผํจ.
def solution(b):
o, x = sum([arr.count('O') for arr in b]), sum([arr.count('X') for arr in b])
# ๋จผ์ O์ X์ ๊ฐ์๋ฅผ ๊ตฌํด์ฃผ์ด 1๋ฒ์ ๊ท์น์ ํต๊ณผ์ํด.
if 0 <= o-x <= 1:
rb = [b[0][i]+b[1][i]+b[2][i] for i in range(3)]
# ๊ฐ๋ก๋ 'OOO'์ผ๋ก ๋ณผ ์ ์์ง๋ง, ์ธ๋ก๋ ๋ฌธ์์ด๋ก ํ์ธํ๊ธฐ ์ด๋ ค์์
# ๊ฐ๋ก์ ์ธ๋ก๋ฅผ ๋ฐ๊พผ board๋ฅผ reverse board์ ์ฝ์์ธ rb๋ก ๋ค์ ๋ง๋ค์ด์ฃผ์๋ค.
# O.. OOO
# O.. --> ...
# O.. ...
winO, winX = 0, 0
# O๊ฐ ์ด๊ธด๊ฒฝ์ฐ์ X๊ฐ ์ด๊ธด๊ฒฝ์ฐ๋ฅผ ์ฒดํฌํด์ฃผ๊ธฐ ์ํด ๋ณ์ ์ ์ธ
for i, j in zip(b, rb):
# ์๋ ๋ณด๋ํ๊ณผ ๊ฐ๋ก,์ธ๋ก๋ฅผ ๋ฐ๊พผ ๋ณด๋ํ์ ๋ฌถ์ด์ for๋ฌธ์ ๋๋ฆผ
if 'OOO' in [i,j]: winO += 1 # 'OOO'๊ฐ ์๋ค๋ฉด O๊ฐ ์ด๊ธดํ์ 1์ฆ๊ฐ
if 'XXX' in [i,j]: winX += 1 # 'XXX'๊ฐ ์๋ค๋ฉด X๊ฐ ์ด๊ธดํ์ซ 1์ฆ๊ฐ
diagonal = [b[0][0] + b[1][1] + b[2][2], b[0][2] + b[1][1] + b[2][0]]
# ์ง์ ์ผ๋ก ์๋ ๊ฒฝ์ฐ๋ ์์ง๋ง, ๋๊ฐ์ ์ผ๋ก ์ด๊ธด ๊ฒฝ์ฐ๋ ์์ด์ ๊ทธ ๊ฒฝ์ฐ๋ฅผ ๋ฃ์ด์ค.
# ์์↓
# OXO
# XOX
# OXO
# ๋๊ฐ์ ์ผ๋ก ์ด๊ธด๊ฒฝ์ฐ ๋ํด์ค
winO += diagonal.count('OOO')
winX += diagonal.count('XXX')
if winX and winO: return 0
# ๋๋ค ์ด๊ธด ๊ฒฝ์ฐ๊ฐ ์๋ค๋ฉด 0์ ๋ฐํ (2๋ฒ์ ๊ฒฝ์ฐ)
if winO and winX == 0 and o==x: return 0
# O๊ฐ ์ด๊ฒผ๋๋ฐ O์ ๊ฐ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ 0 ๋ฐํ (3๋ฒ์ ๊ฒฝ์ฐ)
if winX and winO == 0 and o!=x: return 0
# X๊ฐ ์ด๊ฒผ๋๋ฐ O์ ๊ฐ์๊ฐ ๋ ๋ง์ ๊ฒฝ์ฐ 0 ๋ฐํ (4๋ฒ์ ๊ฒฝ์ฐ)
# ๋๋จธ์ง ๊ฒฝ์ฐ๋ผ๋ฉด ์ ์์ ์ธ ํฑํํ ์์ ๋ณด์ฌ์ง๋ ๊ฒฝ์ฐ๋ผ์ 1 ๋ฐํ
return 1
# O์ X์ ๊ฐ์๊ฐ ๋น์ ์์ ์ธ ๊ฒฝ์ฐ
return 0
"""
728x90
๋ฐ์ํ
'๐ผ๐ก๐๐ค๐ง๐๐ฉ๐๐ข > ๐๐ง๐ค๐๐ง๐๐ข๐ข๐๐ง๐จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค '์๊ฒฉ ์์คํ ' ํ์ด์ฌ ํ์ด (0) | 2023.05.17 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค '์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2 ๊ดํธ ํ์ ํ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.05.08 |
ํ๋ก๊ทธ๋๋จธ์ค '๊ณต์ ์ฐ์ฑ ' ํ์ด์ฌ ํ์ด (0) | 2023.04.26 |
ํ๋ก๊ทธ๋๋จธ์ค '์ฝ๋ ์ฒ๋ฆฌํ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.04.24 |
ํ๋ก๊ทธ๋๋จธ์ค '์ถ์ต ์ ์' ํ์ด์ฌ ํ์ด (0) | 2023.04.05 |
๋๊ธ