-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
BFS 풀이
22.02.01 13:46 작성 조회수 168
0
안녕하세요. 해당 문제 BFS로 풀어봤는데요
import sys
sys.stdin = open('input.txt','r')
from collections import deque
dx = [0,1,0,-1]
dy = [1,0,-1,0]
n = int(input())
board = [list(map(int, input().split())) for _ in range(n)]
Q = deque()
res = []
for k in range(100):
aa = board.copy()
print(aa[0])
print(board[0])
print()
cnt = 0
for i in range(n):
for j in range(n):
if aa[i][j] > k:
aa[i][j] = 0
Q.append((i, j))
while Q:
tmp = Q.popleft()
for l in range(4):
a = tmp[0] + dx[l]
b = tmp[1] + dy[l]
if 0<=a<n and 0<=b<n and aa[a][b] > k:
aa[a][b] = 0
Q.append((a, b))
cnt += 1
res.append(cnt)
if cnt == 0:
break
print(max(res))
한 번 돌때마다 aa = board.copy()로 복사해서 풀어주려고 했는데 답이 안나와서
print(aa[0])와 print(board[0])로 상태를 보니
[6, 8, 2, 6, 2] [6, 8, 2, 6, 2] [0, 0, 0, 0, 0] [0, 0, 0, 0, 0]
이런식으로 바뀌었더라구요.
aa가 변경되더라도 board는 변하면 안될거 같은데 왜 board까지 영향을 받은 걸까요..?
답변을 작성해보세요.
0
답변 1