• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

원더랜드(프림) 질문입니다.

21.04.23 23:55 작성 조회수 206

4

안녕하세요 강사님,

강사님의 강의 코드중 41라인에서, 인접리스트에 있는 간선정보를 pQ.offer(new Edge(ob.vex, ob.cost)) 로 새로 만들면서 넣어주셨는데, 어차피 같은 값이기 때문에 그냥 ob 그대로 넣어주어도 상관없는건가요?

저는 그대로 넣어주고 채점을 했을때, AC가 뜨기는 했습니다. 그런데 똑같은 값인데 계속 새로 만들어서 넣어주면 객체를 새로 만들어서 넣어주는거라 시간이 좀 더 걸릴것도 같아서요...

있는걸 그대로 넣어주면 원본이 들어가는거라 더 위험해서 새로 만들어주신건가요?
그대로 넣어주어도 상관없는지 궁금합니다.

....
    int answer = 0;
    edges.offer(new Edge(1, 0));
    while (!edges.isEmpty()) {
      Edge edge = edges.poll();
      int currentVertex = edge.vertex;
      if (check[currentVertex] == 1) {
        continue;
      }
      check[currentVertex] = 1;
      answer += edge.cost;
      for (Edge nextEdge : adjacencyList.get(currentVertex)) {
        int nextVertex = nextEdge.vertex;
        if (check[nextVertex] == 1) {
          continue;
        }
        edges.offer(nextEdge); // <== 이부분
      }
    }
    System.out.println(answer);
...

답변 1

답변을 작성해보세요.

3

안녕하세요^^

그렇네요. 쓸데없이 객체를 또 만들고 있었네요. 강좌 영상이 마무리되면 이 영상은 바꿔놓도록 하겠습니다. 

알려주셔서 감사합니다.^^