pop을 할 때 visit을 true로 만들게 되면 안된다.
1과 연결된 노드가 2,3,4
2와 연결된 노드가 1,4일 때 위와 같은 로직으로 코딩을 하게 되면 큐에 이 때 1의 visit이 true가 되고 2,3,4가 들어간 후 pop한다.
그 다음 2를 pop한다.
이 때 2의 visit이 true가 되고 1과 4를 넣으려 하는데 1은 이미 방문한 곳이므로 넣지 않고 4는 넣게 된다.
즉, 이 때 큐에는 3 4 4가 되고 4가 중복되어 들어가게 된다. 물론 조건문 처리로 4가 한번 더 나올 경우에 대해 처리할 수 있지만 굳이 그렇게 할 필요가 없다.
push를 한다는 건, visit을 했다는 것 즉, visit를 한 후에 push를 하는 로직으로 코딩을 하면 위와 같은 문제를 해결할 수 있다.