def solution(board):
answer = 0
for col in range(len(board)):
for row in range(len(board[col])):
if board[row][col] == 1:
for j in range(max(col-1,0),min(col+2,len(board))):
for i in range(max(row-1,0),min(row+2,len(board))):
if board[i][j] == 1:
continue
board[i][j] = -1
for i in board:
answer += i.count(0)
return answer
from collections import deque
def solution(board):
n=len(board)
q=deque()
ans=0
for y in range(n):
for x in range(n):
if board[y][x]:
q.append((x,y))
while q:
x,y=q.popleft()
for dx,dy in [(0,1),(0,-1),(1,0),(-1,0),(1,1),(-1,-1),(1,-1),(-1,1)]:
nx=x+dx
ny=y+dy
if 0<=nx<n and 0<=ny<n and not board[ny][nx]:
board[ny][nx]=1
for y in range(n):
for x in range(n):
if not board[y][x]:
ans+=1
return ans
min - max 범위를 벗어나지 않는 것이 포인트인 문제!
LV0 이지만 BFS 개념을 알아야하는 문제였다!
글 잘 봤습니다.