ima9ine   1년 전

arr1과 arr2의 출력 값이 왜 달라지나요??

arr2처럼 해서 배추의 위치를 입력 받고, 2차원 리스트 값을 변경하려고 했는데
왜 arr2[y][x]의 모든 y에 대해서 [x]에 해당하는 숫자가 1로 바뀌는지 모르겠습니다 ...

아직 아무것도 안 풀었는데 입력 받는 것부터 잘 안 되어서 ㅠ ㅠ 도와주시면 감사하겠습니다. 

kevin1211   1년 전

깊은 복사와 얕은 복사에 관한 문제인것 같네요

arr2는 [0]*m을 n번 복사하여 만들어진 배열로 

배열 내부의 값들이 같은 포인터를 가지게 됩니다.

저같은 경우는 이렇게 배열 선언을 하는 대신 

arr2 = [[0]*m for _ in range(n)]

처럼 선언하여 배열을 복사하는게 아닌 n번 새로 만드는 코드를 활용합니다.

ima9ine   1년 전

너무 감사합니다 ㅠㅠ!!!

댓글을 작성하려면 로그인해야 합니다.