cgy12306

[백준 BoJ] 16918 - 봄버맨 본문

Algorithm/Python

[백준 BoJ] 16918 - 봄버맨

cgy12306 2021. 10. 14. 18:59
# https://www.acmicpc.net/problem/16918
# 봄버맨
import copy

def print_map():
    for i in range(n):
        for j in range(m):
            if TimeMap[i][j] == 0:
                print('.', end='')
            else:
                print('O', end='')
        print()

def set_bomb():
    for i in range(n):
        for j in range(m):
            if Map[i][j] == '.':
                TimeMap[i][j] = 0
            else:
                TimeMap[i][j] = 2

def flow_time():
    for i in range(n):
        for j in range(m):
            if TimeMap[i][j] == 0:
                TimeMap[i][j] = 3
            else:
                TimeMap[i][j] -= 1

def explode_bomb(TimeMap):
    tmpMap = copy.deepcopy(TimeMap)
    for i in range(n):
        for j in range(m):
            if TimeMap[i][j] == 0:
                for dir in direction:
                    nx = i + dir[0]
                    ny = j + dir[1]
                    if nx < 0 or nx >= n or ny < 0 or ny >= m:
                        continue
                    tmpMap[nx][ny] = 0
    return tmpMap

n, m, c = map(int, input().split())

Map = [input() for _ in range(n)]
TimeMap = [[0]*m for _ in range(n)]
dx = [-1 ,1 ,0, 0, 0]
dy = [0, 0, -1, 1, 0]

direction = [(1, 0), (-1, 0), (0, 1), (0, -1), (0, 0)]

set_bomb()

for _ in range(c-1):
    flow_time()
    TimeMap = explode_bomb(TimeMap)

print_map()

'Algorithm > Python' 카테고리의 다른 글

[백준 BoJ] 1094 - 막대기  (0) 2021.10.14
[백준 BoJ] 9935 - 문자열폭발  (0) 2021.09.18
[백준 BoJ] 13277 - 큰 수 곱셉  (0) 2021.03.25
Comments