본문 바로가기
Algorithm/Programmers

[코딩테스트 연습] 지형 이동

by BAYABA 2020. 5. 16.

 

문제: https://programmers.co.kr/learn/courses/30/lessons/62050


최소 설치비용을 만족하려면 두 가지 조건을 만족해야 합니다.

 

1. 최소의 사다리 개수

2. 사다리를 놓을 수 있는 위치들 중에 최소비용인 위치

1번에 대해 생각해보면 사다리 없이 이동할 수 있는 지점이 N개라고 하면 N-1개의 사다리만 놓으면 

N개의 지점은 모두 연결이 됩니다. 여기서 이 문제가 MST 문제임을 알 수 있습니다.

 

2번에 대해서는 각 컴포넌트 중에서 경계점에 있는 좌표에 대해 엣지를 구합니다.

Edge(현재 컴포넌트 번호, 연결되어있는 컴포넌트 번호, 사다리 비용)

 

이 엣지를 우선순위 큐에 넣고 작은 비용의 사다리부터 뽑도록 크루스칼 알고리즘을 돌리면

여기서 뽑혀나온 N-1개의 엣지가 최소 설치비용이 됩니다.


코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/summer_winter12.cc