imfksh   3년 전

초보라서 코드가 간결하지 못한점 이해 부탁드립니다.

MST를 먼저 구현한 다음

두 점의 LCA 와 그 사이 간선들 중 가중치가 가장 높은 것을 리턴 받아서 계산 했는데..

제출하니까 그냥 채점 자체가 안되네요.

0% 계산도 안됨..


어느 부분에서 잘못되었는지 고수님들의 가이드 살짝만 부탁드리겠습니다. 

미리 감사합니다.
 

rhtkdwls   3년 전

안녕하세요!

저는 알고리즘을 잘하는 사람도 아니고, 코드를 완벽하게 보진 못했지만 도움이 됐으면 좋겠네요.

먼저 문제를 어떻게 풀어야 하는 지는 개략적으로 알고 계신 것 같습니다. 다만, MST를 만들면서 만들어진 MST를 토대로 LCA를 구축해야하는데, MST는 MST대로, LCA는 LCA대로 만들고 계신 것 같습니다.(이를 위해 flag 변수를 만드신 것 같지만, flag변수가 쓰이지는 않네요)

Prim 알고리즘으로 MST에 필요한 간선을 하나씩 추가면서, 동시에 LCA도 만드는 방법은 어떨까요?

아니면 Kruskal로 MST를 만들었을 때 사용된 간선들만 모아서, 이 간선들을 가지고 LCA를 만드는 방법은 어떨까요?

그리고, 코드에서 선언은 됐지만 쓰이지 않는 부분들이 있습니다. 개인적으로, 코드가 길어지면 해당 코드가 틀렸을 때 어느 부분에 문제가 있는지 확인하기가 어렵더라고요.

그래도 좋은 결과 있었으면 좋겠습니다.

화이팅!

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