28분
edges = new ArrayList[V + 1];
for (int i = 0; i < E; i++) {
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
edges[A].add(new Edge(B, C));
edges[B].add(new Edge(A, C));
}
visited[1] = true;
for (Edge e : edges[1]) {
pq.offer(e);
}
while (!pq.isEmpty() && visitedCount < V) {
Edge e = pq.poll();
if (visited[e.v]) continue;
visited[e.v] = true;
visitedCount++;
answer += e.w;
}
for (Edge nextEdge : edges[e.v]) {
if (!visited[nextEdge.v]) {
pq.offer(nextEdge);
}
}