직선의 고속도로 위에 N개의 센서를 설치하려고 한다. 이 센서들이 수집한 자료를 분석할 최대 K개의 집중국을 세우는데, 각 센서는 반드시 1개 이상의 집중국과 통신가능해야 한다. 각 집중국의 수신 가능영역의 거리의 합의 최솟값은?
IN
OUT
느낌이 왔다. 뭔 느낌이냐면 내가 제일 약한 그리디의 느낌,,^_ㅠ
기록과 정리의 공간님 풀이를 참고했다...
N개의 센서를 k개의 구간으로 나누는 것과 같다.
import sys
input = sys.stdin.readline
sensor = int(input())
base = int(input())
coord = list(map(int, input().split()))
coord.sort()
#기지국의 개수가 센서의 크기와 같거나 크면 -> 센서의 위치에 그냥 설치
if sensor <= base:
print(0)
sys.exit()
dist = []
#각 인접 센서 사이의 거리
for i in range(1, sensor):
dist.append(coord[i]-coord[i-1])
dist.sort(reverse=True)
#k개의 구간으로 나누기 -> 가장 큰 원소부터 k-1개 제거
for i in range(base-1):
dist.pop(0)
print(sum(dist))