๐ ์ฒซ๋ฒ์งธ ์๋
๊ฐ์ธ์ ์ผ๋ก ์ด ๋ฌธ์ ๊ฐ ์ด๋ ค์ ๋ ์ด์ ๋ ๊ฒ์์ด ๋๋๊ณ ์น๋ถ๋ฅผ ํ๋จํ๋ ๊ฒ ์๋๋ผ ์ ๋ ฅ์ด ๋ ๋ ๋๊ฐ ์ธ์ ์ด๊ธฐ๋์ง ์์๋ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํค๋งธ๋ค. ๋ง์ฝ์ ์น๋ถ๋ง ํ๋จํ๋ ๋ฌธ์ ์๋ค๋ฉด, ํ๋ ์ด์ด 1๊ณผ 2๊ฐ ํ๋ ๊ฒ์์ ์ ๋ ฅ ๋ฐ๊ณ ์น๋ถ ์กฐ๊ฑด๋ง ํ์ธํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ฒ์์๋ ์ด๋ ๊ฒ๋ง ์ดํดํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค.
# ๋จผ์ ์์ํ๋ ์ฌ๋
n = int(input())
g = [[' ']*3 for _ in range(3)]
for i in range(9):
r,c = map(int, input().split())
# ๊ฒ์ํ
if i % 2 == 0: g[r-1][c-1] = 'X'
else: g[r-1][c-1] = 'O'
# ์น๋ถ ํ์ธ์ ์ํด์ ์๋ก์ด ๋ฐฐ์ด์ ๋์
.
res = []
for i in range(3):
res.append([g[i][0], g[i][1], g[i][2]])
for i in range(3):
res.append([g[0][i], g[1][i], g[2][i]])
res.append([g[0][0], g[1][1], g[2][2]])
res.append([g[0][2], g[1][1], g[2][0]])
if ['O', 'O', 'O'] in res: winner = 1
if ['X', 'X', 'X'] in res: winner = 2
# ๋น๊ฒผ์ ๋
if winner == 0:
flag = False # ๊ณต๋ฐฑ ํ์ธ
for i in range(len(res)):
if ' ' in res[i]: flag = True
# ๊ณต๋ฐฑ์ด ์๊ณ ์น๋ถ๊ฐ ์๋๋ฉด ๋ฌด์น๋ถ
if not flag : winner = 3
print(winner)
๋ค ์์ฑํ๊ณ ๋๋๊น player๊ฐ ๋ฒ๊ฐ์ ๊ฐ๋ฉด์ ๊ฒ์์ ํ๋ ๋ด์ฉ๋ ์๊ณ ,, ๋จ์ํ ํ์ธ๋ง ํ๋ ๊ฑฐ์๋ค.
๋ฐ๋ผ์ ๋ด ์ฝ๋์ ๋ณด์ํ ์ ์
1. player๋ค์ด ๋ฒ๊ฐ์ ๊ฐ๋ฉด์ ๊ฒ์์ ์งํํ๋ค.
2. ๊ณต์ ํ๊ณ ์๋น์๋ ์ฌํ = ์ ๋ ฅ์ ๋ฐ์ผ๋ฉด์ ์น๋ถ๋ฅผ ์ฒดํฌํ๊ณ , ๋๊ฐ ์ธ์ ์ด๊ธฐ๋์ง ์ถ๋ ฅ.
๐ป ์ต์ข ์ฝ๋
- while๋ฌธ์ ์ด์ฉํด์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ค๊ฐ ๊ฒ์์ด ๋๋๋ฉด break๋ฌธ์ ํตํด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋ค.
- ๊ฒ์์ด ๋๋๋ ์ ๋ฌด๋ winner ๋ณ์๋ฅผ ํตํด ๊ฒฐ์ ํ๋ค.
- ๋งค ํด ๋ง๋ค ๋ฐ๋๋ player ๊ฐ์ if / else ๋ฌธ์ ํตํด ์ง์ ํด์ค๋ค
game = [[' '] * 3 for _ in range(3)]
player = int(input())
while 1:
x, y = map(int,input().split())
x-=1
y-=1
winner = 0
# ๊ฒ์ํ
if player == 1: game[x][y] = 'O'
else: game[x][y] = 'X'
# ์น๋ถ ํ์ธ์ ์ํด ์๋ก์ด ๋ฐฐ์ด์ ๋์
.
res = []
for i in range(3):
res.append([game[i][0], game[i][1], game[i][2]])
for i in range(3):
res.append([game[0][i], game[1][i], game[2][i]])
res.append([game[0][0], game[1][1], game[2][2]])
res.append([game[0][2], game[1][1], game[2][0]])
if ['O', 'O', 'O'] in res: winner = 1
if ['X', 'X', 'X'] in res: winner = 2
# ๋น๊ฒผ๋์ง ์๋์ง ํ์ธ(๊ณต๋ฐฑ์ด ์๊ณ winner๊ฐ ๊ฒฐ์ ์ด ์๋๋ฉด ๋ฌด์น๋ถ.)
if winner == 0:
flag = False
for i in range(len(res)):
if ' ' in res[i]: flag = True
if not flag: winner = 3
if winner > 0: break
# ํด ๋๊ธฐ๊ธฐ
if player == 1: player = 2
else: player = 1
if winner < 3: print(winner)
else: print(0)
๐ก๋ฐฐ์ด ์
์ฒ์์ผ๋ก player๋ค์ด ๋ฒ๊ฐ์ ๊ฐ๋ฉด์ ๊ฒ์ ํ๋ ๊ฒ์ ๊ตฌํํด๋ดค๋๋ฐ, ์ฒ์์ด๋ผ ๊ทธ๋ฐ์ง ์ธ์ฌํ ์์ด๋์ด๊ฐ ๋ง์ด ๋ถ์กฑํ๋ค. ์ฝ์๋ผ(์๊ณ ๋ฆฌ์ฆ ํํ) ์๋ฃ๋ฅผ ๋ณด๊ณ ์ฒ์ฒํ ๋ฐ๋ผ๊ฐ๋๊น ์ดํดํ๊ธฐ ์์ํ๋ค. ์๋ฃ ๋ง๋์ ๋ถ ์ ๋ง.. ๊ฐ!
- ๋๊ฐ์ ๊ฐ์ ํ์ธํ๊ธฐ ์ํด์ ์๋ก์ด ๋ฐฐ์ด์ ์ ์ธํด์ ๊ฐ๋ก์ธก์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๋ ๊ฒ.
- flag๋ฅผ ํ์ฉํ ๋ฆฌ์คํธ ๊ณต๋ฐฑ ํ์ธ๋ฒ
- player๋ค์ ํด ๋๊ธฐ๋ ๋ฒ if / else
- while ๋ฌธ..... break๋ฅผ ์ข ๋ ์์ค ๋๊ฒ ํ์ฉ