참고 답안
EMPTY, BLACK, WHITE = 0, 1, 2
SIZE = 5
def neighbors(r, c):
result = []
for dr, dc in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
nr, nc = r + dr, c + dc
if 0 <= nr < SIZE and 0 <= nc < SIZE:
result.append((nr, nc))
return result
def liberties(board, r, c):
if board[r][c] == EMPTY:
return 0
count = 0
for nr, nc in neighbors(r, c):
if board[nr][nc] == EMPTY:
count += 1
return count
board = [[EMPTY] * SIZE for _ in range(SIZE)]
board[0][2] = BLACK
board[2][0] = WHITE
board[4][4] = BLACK
board[1][1] = BLACK
# 정답
print(f"상변(0,2) 활로: {liberties(board, 0, 2)}") # 3
print(f"좌변(2,0) 활로: {liberties(board, 2, 0)}") # 3
print(f"우하(4,4) 활로: {liberties(board, 4, 4)}") # 2
print(f"안쪽(1,1) 활로: {liberties(board, 1, 1)}") # 4
기대 출력:
상변(0,2) 활로: 3
좌변(2,0) 활로: 3
우하(4,4) 활로: 2
안쪽(1,1) 활로: 4