from collections import deque
import sys
# 1. checkBomb, queue에 담음
# 2. 폭탄 설치 plantBomb
# 2. queue 폭탄 폭파 상우좌하 폭탄 폭발 & checkBomb queue에 담음
def BFS(K):
dy = [-1, 1, 0, 0]
dx = [0, 0, -1, 1]
cnt = 1
while cnt != K:
cnt += 1
if cnt % 2 == 0:
queue = deque(checkBomb(board))
plantBomb(board)
elif cnt % 2 == 1:
if len(queue) == 0:
queue = deque(checkBomb(board))
while queue:
y, x = queue.popleft()
board[y][x] = '.'
if 0 <= y - 1:
board[y - 1][x] = '.'
if 0 <= x - 1:
board[y][x - 1] = '.'
if y + 1 < N:
board[y + 1][x] = '.'
if x + 1 < M:
board[y][x + 1] = '.'
def checkBomb(board):
bombs = []
for i in range(N):
for j in range(M):
if board[i][j] == "O":
bombs.append((i, j))
return bombs
def plantBomb(board):
for i in range(N):
board[i] = ["O"] * M
if __name__ == "__main__":
N, M, K = map(int,input().split())
board = []
for i in range(N):
board.append(list(sys.stdin.readline().rstrip()))
# string 은 끝에 \n있어서 rstrip로 읽어준다
BFS(K)
for i in range(N):
for j in range(M):
print(board[i][j], end="")
print()
정말 나의 섬세하지 못함에 매번 놀란다.
이런 부분에서 시간 줄이는걸 만들면 정말 안되는데,
늘 예상치 못한 기발한? 삽질을 하는 내게 놀라울 다름이다.
제발.. 눈을 떠라 눈을떠라!!