codren   2년 전

모두 False 값으로 되어있는 visited 를 여러번 사용하기 위해서 

41번째 코드처럼 visited.copy() 를 이용했습니다.

하지만 제가 생각했던대로 복사된 것이 사용되지 않고 원래의 visited 가 사용되는 것 같습니다.

왜 이런 건가요??

 

jun2korea   2년 전

리스트에 copy는해당 값을 모두 복사하지 않고 주소를 복사하게 됩니다. 따라서 한 번 copy후 수정하면 원본에서 수정되요

해결방법으로는

1. from copy import deepcopy

얕은 복사, 깊은 복사찾아보시면 될 거 같습니다

2. dfs직전마다 visited를 만드는것으로 해결가능합니다.

codren   2년 전

근데 아래 코드를 수행해보면 원본은 유지되고 copy1만 수정되는데 이러면 원본은 수정되지 않는 것 아닌가요??

codren   2년 전

아래 코드처럼 정확하게 인덱스를 부여하면 원본도 수정이 되는군요 ! 

답변 감사드립니다. 좋은 하루 보내세요 :)

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