문제 안에서 고려해야할 방향은 상, 하, 좌, 우, 대각선까지 총 4갈래방향
x,y 좌표상에서 지뢰의 위치를 (0,0)이라고할때 고려할 수 있는 위치는
(1,0) : 상
(-1,0) : 하
(0,1) : 우
(0,-1) : 좌
(1,1) : 우상
(-1,1) : 좌상
(-1,-1) : 좌하
(1,-1) : 우하
총 8방향
def solution(board):
answer = 0
# 사각형을 만들어주는 좌표 리스트
N = len(board)
# dx: x좌표에서 나올 수 있는 경우의 수 리스트
dx = [-1,1,0,0,-1,-1,1,1]
# dy: y좌표에서 나올 수 있는 경우의 수 리스트
dy = [0,0,-1,1,-1,1,-1,1]
# z : 지뢰가 설치된 곳
z = []
for x in range(N):
for y in range(N):
# 배열에 지뢰인 좌표값을 찾아서 그 값을 z에 넣기
if board[x][y] == 1:
z.append((x, y))
for x, y in z:
for i in range(8):
nx = x + dx[i] #주변 지뢰 x위치 배치
ny = y + dy[i] #주변 지뢰 y위치 배치
if 0<=nx<N and 0<=ny<N:
board[nx][ny] = 1
for b in board:
answer += b.count(0)
return answer