< 문제 >

< 입출력 >

< 풀이 >
문제가 이해되지 않아 계속 읽었다.. 결론적으로 센서는 같은 위치에 있을 수 있고, 센서의 수신 가능 영역이 0일 경우, 센서와 집중국의 위치를 같은 위치에 놓으면 된다.
따라서, 이 문제는 센서 사이의 거리를 가장 줄일 수 있도록 하면 수신 가능 영역의 합이 최소가 되므로, 센서 사이의 거리를 정렬한 뒤 가장 긴 거리를 K개 만큼 줄이면 된다. (K 개의 연결을 끊어주는 것!)
< 코드 >
import sys
input = sys.stdin.readline
n = int(input())
k = int(input())
sensor = list(map(int,input().split()))
sensor.sort()
dist = []
for i in range(n-1):
dist.append(sensor[i+1] - sensor[i]) # 센서 사이의 거리 차 저장
dist.sort()
print(sum(dist[0:n-k])) # 가장 먼 k개의 거리는 끊어서, 최소값 구함
'코딩 테스트 > 그리디' 카테고리의 다른 글
[백준 1080번] 행렬 문제 풀이 (1) | 2023.11.19 |
---|---|
[백준 19598번] 배 문제 풀이 (0) | 2023.11.04 |
[백준 13164번] 행복 유치원 문제 풀이 (1) | 2023.11.04 |
[백준 11000번] 강의실 배정 문제 풀이 (with Python) (0) | 2023.11.04 |
[백준 2195번] 문자열 복사 문제 풀이 (0) | 2023.09.24 |
댓글