[백준] q16918 봄버맨
문제
격자판의 크기, N, 그리고 격자판의 초기 상태가 주어진다. N초가 지난 후의 격자판 상태를 출력하라.
어떻게 풀 것인가?
r, c, n = map(int, input().split())
def print_array(arr):
for idx in range(r):
print(''.join(arr[idx]))
print()
# 격자판 초기 상태
t = 0
arr_0 = [[] for _ in range(r)]
for i in range(r):
arr_0[i] = list(input())
# 다음 1초 동안
# 아무 일도 벌어지지 않는다.
t = 1
while t != n:
# 다음 1초 동안 폭탄이 설치되어 있지 않는 모든 칸에 폭탄을 설치
arr_1 = [['O'] * c for _ in range(r)]
t += 1
if t == n:
arr_0 = arr_1
break
# 1초가 지난 후에 3초 전에 설치된 폭탄이 모두 폭발한다.
for i in range(r):
for j in range(c):
if arr_0[i][j] == 'O':
arr_1[i][j] = '.'
if i+1 < r:
arr_1[i + 1][j] = '.'
if i-1 >= 0:
arr_1[i-1][j] = '.'
if j+1 < c:
arr_1[i][j+1] = '.'
if j-1 >= 0:
arr_1[i][j-1] = '.'
t += 1
arr_0 = arr_1
print_array(arr_0)
댓글남기기