enoch9   3년 전

찾아본 테스트케이스 다 통과하는데 10퍼센트 뜨네요.

1. 지역을 구분하여 번호를 매긴다.

2. 지역끼리 연결이 되는 지, 연결이 된다면 최소 길이가 몇인지 따진 후 c[지역1][지역2] = 길이 로 저장한다.

3. c[][]로 연결된 것들 중 DFS로 몇 개의 쌍들을 빼가며 최소 연결 거리를 찾는다. 

이 로직으로 했는데 어디가 잘못되었을까요..!!!

enoch9   3년 전

해결했습니다.

상, 하, 좌, 우로 가보면서 0이 아닌 것을 찾았을 때 c[출발한 섬][도달한섬] = 거리라고 처리했었는데, 여기에서 break;를 걸어주지 않았더니 1 0 0 2 0 0 3 과 같은 경우 1이 3과 연결되었었네요. ^^

MST 공부하고, 반례 만드는 것을 훈련해야겠습니다.

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