dsa2341   5년 전

플루이드 알고리즘을 써서 arr의 전체값을 구한 후 그룹을 나누고 각 그룹의 인원마다 배열의 최댓값을 구해준다음

그룹 별로 그 최댓값이 가장 작은 번호를 출력한다. 이렇게 생각하고 풀었는데 왜 틀린지 모르겠습니다

djm03178   5년 전

n이 작아서 시간 초과는 나지 않지만, 로직이 틀렸습니다.

25번째 줄에서 i번째 참석자가 아직까지 어떠한 그룹에도 속하지 않았으면 새로운 그룹 번호를 부여하고 있는데, 그렇지 않은 경우 기존의 group[i] 값을 사용해야 하지만 기존의 num을 사용해서 i에 연결된 j들에 대해 group[i]가 아닌 num을 부여해주게 됩니다.

djm03178   5년 전

그것만이 문제가 아니고,

  1. 이미 말씀드린 대로, group[j]들에 group[i]에 부여되어야지, num이 부여되면 안 됩니다. 그 전에 25번째 줄에서 group[i]에 그 번호가 들어가야겠죠.
  2. 만들어진 그룹 순서대로 최댓값의 최솟값의 번호를 찾아서 출력하면 되는 것이 아니라, 이들의 번호를 다시 오름차순으로 정렬해서 출력해야 합니다. 즉, 1번 그룹의 대표가 5이고 2번 그룹의 대표가 4이면 4 5 순으로 출력해야 합니다.

dsa2341   5년 전

말씀해주신 2번은 제가 아예 지나쳤었네요 정말 감사합니다 ㅠㅠ 

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