cctv1002   7년 전

N범위가 100이하라서 그냥 플로이드 와샬 후, 1 ~ N까지 돌면서 체크 안해준 것이 있다면 체크를 그룹번호로 해 주고,


그 그룹에 있는 사람들의 의사전달값을 다 비교한 후 가장 작은 값을 ans배열에 넣은 다음


이를 반복하여 빠져나온 후 ans배열을 퀵정렬로 정렬 후 출력했는데...


정올에서 똑같은 문제가 있길래 해봤더니 석세스 뜨는데 여긴 왜 틀렸을까요 ㅠㅠ

barcelonamessi   7년 전

제가 정확히 짚었는지 모르겠습니다만

모든 참석자들의 의사전달시간중 최대값이 최소가 되도록 하라고 한 문제조건이 있습니다.

이것은 대표값에서 각 모든 참석자로의 거리의 최소가 아니고 

대표자로부터 모든 참석자들의 거리 중 최대값이 최소인 것을 찾는 것입니다.


for (k = 1; k <= V; k++) {
                        if (arr1[j][k] != inf) sum += arr1[j][k];   // j사람의 의사결정전달시간
                    }
                    if (min > sum) {                 // 그 시간이 최솟값인지 확인
                        min = sum, temp = j;
                    }

sum에서 모든 정보를 다 더하는 것이 아니고 이곳의 최대값을 찾아서 대표중에 이 최대값이 가장 작은 대표를 찾아내야한다고

판단됩니다.

cctv1002   7년 전

감사합니다 해결했어용 ㅋㅋ

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