seawon0808   1년 전

https://www.acmicpc.net/source...

https://www.acmicpc.net/source...

첫 번째 코드는 맞고 두 번째 코드는 틀렸다고 나오는데 두 번째 코드가 왜 틀렸는지 알려주세요.

배열을 생성하는 부분만 다릅니다.

tori1753   1년 전

얕은 복사가 일어나서 그렇습니다

arr = [[0] * 10] * 10

arr[0][0] = 1

print(arr)

print된 arr 결과를 확인해보시면 뭐가 문제인지 바로 아실 수 있을겁니다.

seawon0808   1년 전

알려주셔서 감사합니다.

그러면 * 를 사용해서 배열을 생성하는 것은 안하는 것이 좋나요?

emforhs246   1년 전

리스트 생성하실 때 제일 안쪽 리스트에만 * 로 초기화 하시고 나머지는 리스트 내포로 작성하세요


arr = [[0] * 10] * 10 이거 대신

arr = [[0] * 10 for _ in range(10)] 이렇게

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