# r행 c열
list_ = [[0 for _ in range(c)] for _ in range(r)]
# matrix input
## 이미 input 받아오는 게 1x8 (c)
board = [list(map(int, input().split())) for _ in range(r - 1)]
https://www.acmicpc.net/problem/17144
아래 결과 디버깅
r, c, t = map(int, input().split())
ori_board, air_cleaner = [], []
ori_board = [list(map(int, input().split()))
for _ in range(r)]
# airclear 위치 받기
# air_cleaner =
#######################################################
dxs, dys = [0, 1, 0, -1], [1, 0, -1, 0]
def in_range(x, y):
return 0 <= x and x < r and 0 <= y and y < c
def diffusion(ori_board):
# diffused 는 확산된 미세먼지의 양을 말한다.
diffused = [[0 for _ in range(c)] for _ in range(r)]
global dxs, dys
for i in range(r):
for j in range(c):
print(f"original board[{i}][{j}] 에 대해서")
count = 0
if ori_board[i][j] != 0 or ori_board[i][j] != -1:
print(f"ori_board{[i]}{[j]} 는 미세먼지가 있는 칸")
for dx, dy in zip(dxs, dys):
ni, nj = i + dx, j + dy
print(f"얘는 단순히 방향, 새롭게 만들어진 애들은 {ni}, {nj}")
if in_range(ni, nj) and ori_board[i][j] != 0 and ori_board[i][j] != -1:
print(f"인접 칸인 ori_board[{ni}][{nj}]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 {ori_board[ni][nj]}")
count += 1
#### 여기에서, 중복으로 안 더해져!!
diffused[ni][nj] += ori_board[i][j] // 5
print(count)
# 원래 미세먼지에서 확산된 만큼 줄어든 양. 나중에 두 개를 합치면 최종 먼지가 나옴.
ori_board[i][j] -= (ori_board[i][j] // 5) * count
result = [[0 for _ in range(c)] for _ in range(r)]
for i in range(r):
for j in range(c):
result[i][j] = ori_board[i][j] + diffused[i][j]
print(result)
diffusion(ori_board)
>>> output
7 8 1
0 0 0 0 0 0 0 9
0 0 0 0 3 0 0 8
-1 0 5 0 0 0 22 0
-1 8 0 0 0 0 0 0
0 0 0 0 0 10 43 0
0 0 5 0 15 0 0 0
0 0 40 0 0 0 20 0
original board[0][0] 에 대해서
ori_board[0][0] 는 미세먼지가 있는 칸
0
original board[0][1] 에 대해서
ori_board[0][1] 는 미세먼지가 있는 칸
0
original board[0][2] 에 대해서
ori_board[0][2] 는 미세먼지가 있는 칸
0
original board[0][3] 에 대해서
ori_board[0][3] 는 미세먼지가 있는 칸
0
original board[0][4] 에 대해서
ori_board[0][4] 는 미세먼지가 있는 칸
0
original board[0][5] 에 대해서
ori_board[0][5] 는 미세먼지가 있는 칸
0
original board[0][6] 에 대해서
ori_board[0][6] 는 미세먼지가 있는 칸
0
original board[0][7] 에 대해서
ori_board[0][7] 는 미세먼지가 있는 칸
인접 칸인 ori_board[1][7]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 8
인접 칸인 ori_board[0][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
2
original board[1][0] 에 대해서
ori_board[1][0] 는 미세먼지가 있는 칸
0
original board[1][1] 에 대해서
ori_board[1][1] 는 미세먼지가 있는 칸
0
original board[1][2] 에 대해서
ori_board[1][2] 는 미세먼지가 있는 칸
0
original board[1][3] 에 대해서
ori_board[1][3] 는 미세먼지가 있는 칸
0
original board[1][4] 에 대해서
ori_board[1][4] 는 미세먼지가 있는 칸
인접 칸인 ori_board[1][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[2][4]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[1][3]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[0][4]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[1][5] 에 대해서
ori_board[1][5] 는 미세먼지가 있는 칸
0
original board[1][6] 에 대해서
ori_board[1][6] 는 미세먼지가 있는 칸
0
original board[1][7] 에 대해서
ori_board[1][7] 는 미세먼지가 있는 칸
인접 칸인 ori_board[2][7]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[1][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[0][7]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 7
3
original board[2][0] 에 대해서
ori_board[2][0] 는 미세먼지가 있는 칸
0
original board[2][1] 에 대해서
ori_board[2][1] 는 미세먼지가 있는 칸
0
original board[2][2] 에 대해서
ori_board[2][2] 는 미세먼지가 있는 칸
인접 칸인 ori_board[2][3]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[3][2]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[2][1]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[1][2]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[2][3] 에 대해서
ori_board[2][3] 는 미세먼지가 있는 칸
0
original board[2][4] 에 대해서
ori_board[2][4] 는 미세먼지가 있는 칸
0
original board[2][5] 에 대해서
ori_board[2][5] 는 미세먼지가 있는 칸
0
original board[2][6] 에 대해서
ori_board[2][6] 는 미세먼지가 있는 칸
인접 칸인 ori_board[2][7]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[3][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[2][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[1][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[2][7] 에 대해서
ori_board[2][7] 는 미세먼지가 있는 칸
0
original board[3][0] 에 대해서
ori_board[3][0] 는 미세먼지가 있는 칸
0
original board[3][1] 에 대해서
ori_board[3][1] 는 미세먼지가 있는 칸
인접 칸인 ori_board[3][2]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[4][1]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[3][0]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 -1
인접 칸인 ori_board[2][1]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[3][2] 에 대해서
ori_board[3][2] 는 미세먼지가 있는 칸
0
original board[3][3] 에 대해서
ori_board[3][3] 는 미세먼지가 있는 칸
0
original board[3][4] 에 대해서
ori_board[3][4] 는 미세먼지가 있는 칸
0
original board[3][5] 에 대해서
ori_board[3][5] 는 미세먼지가 있는 칸
0
original board[3][6] 에 대해서
ori_board[3][6] 는 미세먼지가 있는 칸
0
original board[3][7] 에 대해서
ori_board[3][7] 는 미세먼지가 있는 칸
0
original board[4][0] 에 대해서
ori_board[4][0] 는 미세먼지가 있는 칸
0
original board[4][1] 에 대해서
ori_board[4][1] 는 미세먼지가 있는 칸
0
original board[4][2] 에 대해서
ori_board[4][2] 는 미세먼지가 있는 칸
0
original board[4][3] 에 대해서
ori_board[4][3] 는 미세먼지가 있는 칸
0
original board[4][4] 에 대해서
ori_board[4][4] 는 미세먼지가 있는 칸
0
original board[4][5] 에 대해서
ori_board[4][5] 는 미세먼지가 있는 칸
인접 칸인 ori_board[4][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 43
인접 칸인 ori_board[5][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[4][4]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[3][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[4][6] 에 대해서
ori_board[4][6] 는 미세먼지가 있는 칸
인접 칸인 ori_board[4][7]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[5][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[4][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 2
인접 칸인 ori_board[3][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[4][7] 에 대해서
ori_board[4][7] 는 미세먼지가 있는 칸
0
original board[5][0] 에 대해서
ori_board[5][0] 는 미세먼지가 있는 칸
0
original board[5][1] 에 대해서
ori_board[5][1] 는 미세먼지가 있는 칸
0
original board[5][2] 에 대해서
ori_board[5][2] 는 미세먼지가 있는 칸
인접 칸인 ori_board[5][3]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[6][2]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 40
인접 칸인 ori_board[5][1]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[4][2]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[5][3] 에 대해서
ori_board[5][3] 는 미세먼지가 있는 칸
0
original board[5][4] 에 대해서
ori_board[5][4] 는 미세먼지가 있는 칸
인접 칸인 ori_board[5][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[6][4]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[5][3]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[4][4]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
4
original board[5][5] 에 대해서
ori_board[5][5] 는 미세먼지가 있는 칸
0
original board[5][6] 에 대해서
ori_board[5][6] 는 미세먼지가 있는 칸
0
original board[5][7] 에 대해서
ori_board[5][7] 는 미세먼지가 있는 칸
0
original board[6][0] 에 대해서
ori_board[6][0] 는 미세먼지가 있는 칸
0
original board[6][1] 에 대해서
ori_board[6][1] 는 미세먼지가 있는 칸
0
original board[6][2] 에 대해서
ori_board[6][2] 는 미세먼지가 있는 칸
인접 칸인 ori_board[6][3]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[6][1]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[5][2]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 1
3
original board[6][3] 에 대해서
ori_board[6][3] 는 미세먼지가 있는 칸
0
original board[6][4] 에 대해서
ori_board[6][4] 는 미세먼지가 있는 칸
0
original board[6][5] 에 대해서
ori_board[6][5] 는 미세먼지가 있는 칸
0
original board[6][6] 에 대해서
ori_board[6][6] 는 미세먼지가 있는 칸
인접 칸인 ori_board[6][7]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[6][5]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
인접 칸인 ori_board[5][6]에 확산! 이때 이 칸에 원래 있던 미세먼지 값은 0
3
original board[6][7] 에 대해서
ori_board[6][7] 는 미세먼지가 있는 칸
0
[[0, 0, 0, 0, 0, 0, 1, 8], [0, 0, 1, 0, 3, 0, 5, 6], [-1, 2, 1, 1, 0, 4, 6, 5], [0, 4, 2, 0, 0, 2, 12, 0], [0, 1, 1, 0, 5, 10, 13, 8], [0, 1, 9, 4, 3, 5, 12, 0], [0, 8, 17, 8, 3, 4, 8, 4]]