17472번 - 다리 만들기 2
찾아본 테스트케이스 다 통과하는데 10퍼센트 뜨네요.
1. 지역을 구분하여 번호를 매긴다.
2. 지역끼리 연결이 되는 지, 연결이 된다면 최소 길이가 몇인지 따진 후 c[지역1][지역2] = 길이 로 저장한다.
3. c[][]로 연결된 것들 중 DFS로 몇 개의 쌍들을 빼가며 최소 연결 거리를 찾는다.
이 로직으로 했는데 어디가 잘못되었을까요..!!!
해결했습니다.
상, 하, 좌, 우로 가보면서 0이 아닌 것을 찾았을 때 c[출발한 섬][도달한섬] = 거리라고 처리했었는데, 여기에서 break;를 걸어주지 않았더니 1 0 0 2 0 0 3 과 같은 경우 1이 3과 연결되었었네요. ^^
MST 공부하고, 반례 만드는 것을 훈련해야겠습니다.
댓글을 작성하려면 로그인해야 합니다.
enoch9 3년 전 1
찾아본 테스트케이스 다 통과하는데 10퍼센트 뜨네요.
1. 지역을 구분하여 번호를 매긴다.
2. 지역끼리 연결이 되는 지, 연결이 된다면 최소 길이가 몇인지 따진 후 c[지역1][지역2] = 길이 로 저장한다.
3. c[][]로 연결된 것들 중 DFS로 몇 개의 쌍들을 빼가며 최소 연결 거리를 찾는다.
이 로직으로 했는데 어디가 잘못되었을까요..!!!