λ°μν
π€λ¬Έμ ν΄κ²°
- 6λͺ©μ μλλ€.
- λ΅μ μΆλ ₯ν λ, μΌμͺ½ μ°μ , μμͺ½ μ°μ μ΄λ―λ‘
- λ°λλμ κΈ°μ€μΌλ‘ μ°μ, μ°, μ°ν, ν μ΄λ κ² 4λ°©ν₯λ§ κ³ λ €ν΄μ€¬λ€.
- λ¨Όμ λ°λλ νλλ₯Ό μ ννκ³
- μ΄ λ°λλμ΄ λμμ μμνλμ§ or λμ΄ μλλΌλ©΄ λ΄κ° 체ν¬ν λ°©ν₯μ λ°λλ°©ν₯μΌλ‘ μλ λ°λλμ΄ μλμ§
- μ‘λͺ© λ°©μ§
- μμ 쑰건μ λ§λ€λ©΄ λ΄κ° μ ν λ°©ν₯μΌλ‘ νμνλ©° κ°μ μμ λ°λλμ κ³μ μ°Ύμ
- μλ λ°λλμ λ§λκ±°λ λ°λν λ°μΌλ‘ λκ°λ©΄ λ΄κ° μ°Ύμ λ°λλμ κ°μλ₯Ό 체ν¬
- λ°λλμ 4κ° λ μ°ΎμμΌλ©΄ μ±κ³΅
- μλλ©΄ μ€ν¨
- μ΄ λ°λλμ΄ λμμ μμνλμ§ or λμ΄ μλλΌλ©΄ λ΄κ° 체ν¬ν λ°©ν₯μ λ°λλ°©ν₯μΌλ‘ μλ λ°λλμ΄ μλμ§
π»μμ€ μ½λ
import sys
input = sys.stdin.readline
LENGTH = 19
board = [list(map(int, input().split(" "))) for _ in range(19)]
# μ°μ, μ°, μ°ν, ν - 3κ°μ§ λ°©ν₯λ§ κ³ λ €
dx, dy = [-1, 0, 1, 1], [1, 1, 1, 0]
def is_in(x, y):
if 0 <= x < LENGTH and 0 <= y < LENGTH:
return True
else:
return False
def is_omok(x, y, player):
for k in range(len(dx)):
# λ°λλ°©ν₯μ λλ κ°μ λμ΄ μλ μ§ νμΈ: μμ΄μΌλλ€.
bx = x - dx[k]
by = y - dy[k]
if not is_in(bx, by) or board[bx][by] != player:
nx = x + dx[k]
ny = y + dy[k]
cnt = 1
while True:
if is_in(nx, ny) and board[nx][ny] == player:
cnt += 1
else:
break
nx += dx[k]
ny += dy[k]
if cnt == 5:
return True
else:
return False
def main():
for i in range(LENGTH):
for j in range(LENGTH):
if board[i][j] != 0:
# μ€λͺ©μΈμ§ μ κ²νκΈ°
if is_omok(i, j, board[i][j]):
return board[i][j], f'{i + 1} {j + 1}'
else:
return 0, 0
winner, pos = main()
if winner != 0:
print(winner)
print(pos)
else:
print(winner)
πλ¬Έμ νμΈ
μΆμ²: BACKJOON ONLINE JUDGE
λ°μν
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] λ°±μ€ - 1105. ν (0) | 2021.09.05 |
---|---|
[python] λ°±μ€ - 13023. ABCDE (0) | 2021.09.04 |
[python] λ°±μ€ - 1052. λ¬Όλ³ (0) | 2021.09.02 |
[python] νλ‘κ·Έλλ¨Έμ€ - μ΄μ§ λ³ν λ°λ³΅νκΈ°(μκ° μ½λ μ±λ¦°μ§ μμ¦1) (0) | 2021.09.01 |
[python] νλ‘κ·Έλλ¨Έμ€ - λ€λ¨κ³ μΉ«μ ν맀(2021 Dev-Matching: μΉ λ°±μλ κ°λ°μ(μλ°κΈ°)) (0) | 2021.08.23 |