275. 봄버맨
1) 어떤 전략(알고리즘)으로 해결?
2) 코딩 설명
<내 풀이>
import sys
rdis = [-1, 1, 0, 0]
cdis = [0, 0, 1, -1]
def solution(r,c,n,mapp) :
while n<=time :
if n%2== 0 :
for i in range(r) :
for j in range(c) :
if type(mapp[i][j])==str and mapp[i][j]=="." :
mapp[i][j] = 3
for i in range(r) :
for j in range(c) :
if type(mapp[i][j])==int :
if mapp[i][j]==0 :
for k in range(4) :
if 0<=i+rdis[k]<r and 0<=j+cdis[k]<c and type(mapp[i+rdis[k]][j+cdis[k]]) == int and mapp[i+rdis[k]][j+cdis[k]]!=0 :
mapp[i+rdis[k]][j+cdis[k]] = "."
mapp[i][j]="."
for i in range(r) :
for j in range(c) :
if type(mapp[i][j])==int :
if mapp[i][j]>0 :
mapp[i][j]-=1
n+=1
r,c,time = map(int, sys.stdin.readline().split())
mapp = []
for i in range(r) :
mapp.append(list(sys.stdin.readline().rstrip()))
for i in range(r) :
for j in range(c) :
if mapp[i][j]=="O" :
mapp[i][j]=2
solution(r,c,1,mapp)
for m in mapp:
for mm in m :
if type(mm)==int :
print("O", end= "")
else : print(mm, end= "")
print()
<반성 점>
- 문제 조건을 꼼꼼히 안 읽었었다! 대충 살면 몸이 고생하네~
<배운 점>
- 이제부터 프로그래머스 방식으로 백준을 풀기로 했다 ! 함수로 나눠서,,,