sanha93   5년 전

맨 처음 인접 리스트로 받아서

스타트 지점에서 거리백터 하나 만들고

중복으로 대기 순위에 쌓이는걸 방지하기 위해서 

set에 해야 할 것들을 넣어두고

set내용이 하나도 없을때까지 진행하였는데

왜 시간 초과가 나는것일까요? 

djm03178   5년 전

set에 원소를 삽입하거나 삭제를 했다면 그 때까지 만들어진 모든 iterator는 무효화가 됩니다. 그대로 사용을 해서는 안 됩니다.

그리고 어떤 시점의 begin에서 시작한 것 이후로 쭉 진행하면서 뽑아오는 것이 아니라, 매번 가장 가까운 거리의 정점을 뽑아와야 합니다. 즉, 매 루프마다 begin()을 불러와야 합니다.

sanha93   5년 전

아 가장 가까운 거리 정점부터 탐색 해야 하는거군요

iterator 는 문제 없이 처리 됬었습니다. 

다음 걸로 iteraator 옮겨 놓고 그전꺼 삭제하면 문제 없더라구요

djm03178   5년 전

아 그러네요. 찾아보니 지워진 iterator만 무효화되는군요.

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