얕은 복사가 일어나서 그렇습니다
arr = [[0] * 10] * 10
arr[0][0] = 1
print(arr)
print된 arr 결과를 확인해보시면 뭐가 문제인지 바로 아실 수 있을겁니다.
12865번 - 평범한 배낭
알려주셔서 감사합니다.
그러면 * 를 사용해서 배열을 생성하는 것은 안하는 것이 좋나요?
리스트 생성하실 때 제일 안쪽 리스트에만 * 로 초기화 하시고 나머지는 리스트 내포로 작성하세요
arr = [[0] * 10] * 10 이거 대신
arr = [[0] * 10 for _ in range(10)] 이렇게
댓글을 작성하려면 로그인해야 합니다.
seawon0808 1년 전
https://www.acmicpc.net/source...
https://www.acmicpc.net/source...
첫 번째 코드는 맞고 두 번째 코드는 틀렸다고 나오는데 두 번째 코드가 왜 틀렸는지 알려주세요.
배열을 생성하는 부분만 다릅니다.