[백준] q16918 봄버맨

최대 1 분 소요

문제

격자판의 크기, 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)

카테고리:

업데이트:

댓글남기기