https://www.acmicpc.net/problem/2638
1. 공기와 접촉하면 천천히 녹는다. 내부에 있는 공간은 접촉하지 않는 것으로 가정한다. 이 의미에 힌트가있다.
2. 내부에 있는 공간은 접촉하지 않으므로 외부에서부터 BFS로 진행해줘서 2번이상 접촉을하면 다음 반복문에서 제외시켜주면된다.
3. 마지막으로 전체가 0 일시 무한루프 탈출해준다.
from collections import deque
n, m = map(int, input().split())
cheeze = [list(map(int, input().split())) for _ in range(n)]
dx, dy = [0, 0, 1, -1], [1, -1, 0, 0]
ans = 0
while True:
queue = deque()
ch = [[0 for _ in range(m)] for _ in range(n)]
ch[0][0] = 1
queue.append([0, 0])
while queue:
x, y = queue.popleft()
for k in range(4):
nx, ny = x+dx[k], y+dy[k]
if 0 <= nx < n and 0 <= ny < m and not ch[nx][ny]:
if cheeze[nx][ny]:
cheeze[nx][ny] += 1
else:
ch[nx][ny] = 1
queue.append([nx, ny])
flag = 0
for i in range(n):
for j in range(m):
if cheeze[i][j] >= 3:
cheeze[i][j] = 0
elif 0 < cheeze[i][j]:
flag = 1
cheeze[i][j] = 1
ans += 1
if not flag:
print(ans)
break
'알고리즘 > BOJ' 카테고리의 다른 글
[Python] 백준 1916: 최소비용 구하기 (0) | 2021.09.17 |
---|---|
[Python] 백준 9576: 책 나눠주기 (0) | 2021.09.17 |
[Python] 백준 16288: Passport Control (0) | 2021.09.15 |
[Python] 백준 1781: 컵라면 (0) | 2021.09.14 |
[Python] 백준 13164: 행복 유치원 (0) | 2021.09.14 |
댓글