인프런 커뮤니티 질문&답변

우럭아왜우럭님의 프로필 이미지
우럭아왜우럭

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

8. 원더랜드(최소 스패닝 트리 - 프림 : PriorityQueue 활용)

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

작성

·

255

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

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

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

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

우럭아왜우럭님의 프로필 이미지
우럭아왜우럭

작성한 질문수

질문하기