16929번 - Two Dots
모두 False 값으로 되어있는 visited 를 여러번 사용하기 위해서
41번째 코드처럼 visited.copy() 를 이용했습니다.
하지만 제가 생각했던대로 복사된 것이 사용되지 않고 원래의 visited 가 사용되는 것 같습니다.
왜 이런 건가요??
리스트에 copy는해당 값을 모두 복사하지 않고 주소를 복사하게 됩니다. 따라서 한 번 copy후 수정하면 원본에서 수정되요
해결방법으로는
1. from copy import deepcopy
얕은 복사, 깊은 복사찾아보시면 될 거 같습니다
2. dfs직전마다 visited를 만드는것으로 해결가능합니다.
근데 아래 코드를 수행해보면 원본은 유지되고 copy1만 수정되는데 이러면 원본은 수정되지 않는 것 아닌가요??
아래 코드처럼 정확하게 인덱스를 부여하면 원본도 수정이 되는군요 !
답변 감사드립니다. 좋은 하루 보내세요 :)
댓글을 작성하려면 로그인해야 합니다.
codren 2년 전 1
모두 False 값으로 되어있는 visited 를 여러번 사용하기 위해서
41번째 코드처럼 visited.copy() 를 이용했습니다.
하지만 제가 생각했던대로 복사된 것이 사용되지 않고 원래의 visited 가 사용되는 것 같습니다.
왜 이런 건가요??