barcelonamessi   7년 전

자료구조는 2차원 벡터를 만들었고

벡터의 자료형은 제가 임의로 만든 사용자 정의형인데 이 자료구조에는

point{

int from;

int to;

int weight;

}

로 시작점, 도착점, 길이를 저장해 두었습니다.


그리고 priority queue 를 만들어서 시작점에서 연결된 간선들을 우선 추가했습니다.

for(int i=0; i<arr.get(start_point).size(); i++){

p_queue.add(arr.get(start_point).elementAt(i));

}


그리고 큐가 빌때까지 가장 작은 크기의 간선을 가져와서 길이를 업데이트 하는데요

while문 내에서

새로운 point에 큐의 제일 앞부분을 가져옵니다.

그리고 탐색을 전혀 하지 않은 부분이고, 도착점이 시작점이 아닌경우에는

해당 점에 길이를 업데이트하고 큐에 그 점에서 연결된 간선을 추가합니다.

또한 탐색을 했던 부분이지만 더 가까워진 부분은 그냥 길이만 업데이트하고

나머지 경우는 그냥 패스합니다. 이렇게 해서 문제에 나온 케이스와 몇가지 케이스는 통과하는데

틀렸다고 나와서 조언을 구해보고자 질문올려봅니다.
















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