1197번 - 최소 스패닝 트리
제가 처음 생각이 들었던 것은 트리는 간선이 V - 1개 이니까
간선 E 개를 내림차순으로 정렬해서 그 가중치를 가진 간선과 연결된 정점이 연결된 간선이 2개 이상인지(간선을 제거 했을 때 트리를 만들 수 있는지) 확인해서 그 간선을 제거해주는 방향으로 하면 되겠다 싶었는데, 틀렸습니다를 받네요..
반례가 나올만한 상황이 현재 제거할 수 있는 간선을 제거했을 때 어떤 정점이 제거할 수 있었던 간선을 제거하지 못하게 됨으로써 발생할 수 있을 것 같기도 한데, 저로써는 잘 떠오르지 않네요...
반례나 오류 지적해주시면 정말 감사할 것 같습니다..
반례 드립니다
6 7
1 3 2
1 2 5
2 3 1
3 4 10
3 5 9
4 6 8
5 6 7
정답은 27인데 작성자님 코드는 23이 나와요
값을 보면 4,5,6 정점과 1,2,3 정점이 서로 나뉘어져 있어서 트리가 아닌데 1,2,3부분에는 사이클까지 생기죠
@dk10211
답변 감사드립니다.
고립될 수 있는 경우가 확실히 있네요..
아마 간선이 제거 가능한 간선인지 확인하는 부분을 넣어야 할 것 같습니다.
다시 한번 감사드립니다!
댓글을 작성하려면 로그인해야 합니다.
jwjung0907 2년 전 1
제가 처음 생각이 들었던 것은 트리는 간선이 V - 1개 이니까
간선 E 개를 내림차순으로 정렬해서 그 가중치를 가진 간선과 연결된 정점이 연결된 간선이 2개 이상인지(간선을 제거 했을 때 트리를 만들 수 있는지) 확인해서 그 간선을 제거해주는 방향으로 하면 되겠다 싶었는데, 틀렸습니다를 받네요..
반례가 나올만한 상황이 현재 제거할 수 있는 간선을 제거했을 때 어떤 정점이 제거할 수 있었던 간선을 제거하지 못하게 됨으로써 발생할 수 있을 것 같기도 한데, 저로써는 잘 떠오르지 않네요...
반례나 오류 지적해주시면 정말 감사할 것 같습니다..