https://www.acmicpc.net/problem/2212
>>문제 포인트
- 이어진 간격에서 m-1개를 없애면 m-1개의 끊어짐이 생김= m개의 묶임이 생김
ex) 5 묶음 간에는 4개의 간격이 존재
=> 먼 간격부터 기지국의 수만큼 끊어내어 기지국 수만큼 묶음을 만들기
#아이디어 : 가장 짧은 간격부터 n-1개를 택하면 됨
#=> 가장 긴 간격부터 n개를 제거함
n= int(input()) #센서 개수
m= int(input()) #집중국 개수
#센서위치
sensor = list(map(int, input().split()))
sensor.sort()
#간격
interval=[]
before = sensor[0]
for i in sensor[1:]:
interval.append(i-before)
before=i
#간격 정렬 후 큰 것부터 m-1개 없애기
# => 간격이 m-1개 끊어지면 묶음이 m개 생기므로
interval.sort(reverse=True)
interval=interval[m-1:]
print(sum(interval))
'백준 문풀' 카테고리의 다른 글
[Python] 위상정렬 - 14567. 선수과목 (골5) (0) | 2023.07.30 |
---|---|
[Python] Kruskal - 2287. 행성터널[플5] (0) | 2023.07.30 |
[Python] 그리디-1213. 팰린드롬 만들기 (실3) (0) | 2023.07.28 |
[Python] 그리디 - 1449. 수리공 항승 (실3) (0) | 2023.07.28 |
[Python] 그리디- 4796. 캠핑(브1) (0) | 2023.07.28 |