파이썬에서 2차원 배열을 만드는 방법이 잘못되었습니다.
visited = [[False]* N] * N 이 뜻하는 것은, 그저 요쇼를 복사하는 것을 뜻하는 것일 뿐입니다.
배열은 포인터입니다. 그런 배열을 그대로 복사하니, 포인터마저 그대로 복사합니다.
결국 여러 개의 똑같은 값을 가리키게 되어버립니다.
예를 들어, visited[0][1] 을 True로 바꾸면, visited[0]의 포인터 = visited[1]의 포인터 이기 때문에, visited[0][1] = visited[1][1] 이 되어버립니다.
제대로 된 2차원 배열을 만드는 방법은,
two_array = [[False]*N for _ in range(N)]
처럼 for문을 이용해야 합니다. (이것에 대해서는 검색을 추천드립니다.)
mickeyshoes 2년 전
안녕하세요 :) 이제 막 bfs, dfs 에 입문한 그린입니다..
꽤 오랜 시간 디버깅을 했는데 이유를 잘 모르겠어서.. 질문 남겨봅니다..ㅜ
bfs 를 사용해서 구현하였습니다.
문제가 되는 상황은 아직 방문하지 않은 곳이 True 로 초기화가 되어 있는 문제입니다.
문제가 되는 상황은 다음과 같습니다.
ex)
코린이에게 도움을 주세요.. 답변 남겨주시면 감사하겠습니다