temp = matrix를 하면 shallow copy가 되어 temp의 값을 바꾸어도 matrix의 값이 바뀌게 됩니다.
의도하신 대로 사용하려면 deepcopy를 사용해야합니다.
shallow copy에 대해 공부해보시는 걸 추천합니다 :)
14502번 - 연구소
temp = matrix를 하면 shallow copy가 되어 temp의 값을 바꾸어도 matrix의 값이 바뀌게 됩니다.
의도하신 대로 사용하려면 deepcopy를 사용해야합니다.
shallow copy에 대해 공부해보시는 걸 추천합니다 :)
댓글을 작성하려면 로그인해야 합니다.
min3209258 1년 전
input:
4 6
0 0 0 0 0 0
1 0 0 0 0 2
1 1 1 0 0 2
0 0 0 0 0 2
49번 줄에서 벽을 세우기 전에 임시 행렬을 초기화 해주고자,
처음 입력받은 Matrix 변수를 이용해 temp = matrix 작성하였습니다.
(48번줄 - 임의로 벽을 세우는 조합 2가지로 반복 시켜놨습니다.)
그럼 print(matrix)의 경우 처음 입력받은 matrix를 변경시킨 코드는 없으니까 Input 값과 동일하게 나와야하는데,
virus 전파를 수행한 bfs 함수 후에 matrix로 바뀐 것으로 보입니다..
왜 그런지 이유를 모르겠어서 질문 드립니다 ㅜㅜㅜ
output:(49번줄 print 결과)
[[0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 2], [1, 1, 1, 0, 0, 2], [0, 0, 0, 0, 0, 2]]
[[2, 2, 2, 2, 2, 2], [1, 2, 2, 2, 2, 2], [1, 1, 1, 2, 2, 2], [0, 1, 0, 1, 1, 2]]