0. 센서의 위치가 아닌, 센서 사이의 거리에 대한 문제이다
1. 센서가 N개 있다면, 센서 사이의 거리는 N-1개 생성된다
2. 기지국이 1개라면, 해당 기지국은 모든 거리를 포함해야한다
3. 기지국이 2개라면, 어떤 거리 X를 이루는 두 센서를 각각 관리함으로서, 거리 X부분을 포함하지 않아도 된다
4. 기지국이 K개라면, N-1개의 거리들 중 K-1개를 선택하지 않아도 된다
5. 전체 거리들 중 그 값이 큰 순서로 K-1개 선택하지 않으면 요구한 최소 길이의 합이 나온다
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = pint(br.readLine());
int K = pint(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int minimumArea=0;
int[] sensor = new int[N];
PriorityQueue<Integer>pq = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
sensor[i] = pint(st.nextToken());
}
Arrays.sort(sensor);
for (int i = 1; i < N; i++) {
int distance = sensor[i]-sensor[i-1];
pq.add(distance);
}
for (int i = 0, len=pq.size(); i < len - (K-1); i++) {
minimumArea+=pq.poll();
}
System.out.println(minimumArea);
}
static int pint(String s) {
return Integer.parseInt(s);
}
}
'알고리즘 문제 풀이 > BOJ 골드' 카테고리의 다른 글
[백준] 1715 - 카드 정렬하기 (0) | 2021.07.07 |
---|---|
[백준] 1826 - 연료 채우기 (0) | 2021.07.07 |
[백준] 7579 - 앱 (0) | 2021.06.27 |
[백준] 16120 - PPAP (0) | 2021.06.24 |
[백준] 13904 - 과제 (0) | 2021.06.24 |
[백준] 1747 - 소수 & 팰린드롬 (0) | 2021.06.18 |
[백준] 1342 - 행운의 문자열 (0) | 2021.06.18 |