반응형

https://www.acmicpc.net/problem/2212

 

2212번: 센서

첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있

www.acmicpc.net

 

문제 예시를 기준으로 하면,

센서의 좌표를 오름차순으로 정렬하면 [1, 3, 6, 6, 7, 9] 입니다.

각 센서 사이의 거리는 [2, 3, 0, 1, 2] 입니다.

k == 2이므로 두 그룹으로 묶어줄 수 있으니, 각 거리 사이를 k - 1번 건너뛸 수 있습니다.

따라서, 센서 사이의 거리에서 k - 1개까지의 최댓값을 제외한 거리 합을 구해주면 됩니다.

 

#include <iostream>
#include <algorithm>
int n, k, s = 0, arr[10001];
int main() {
	scanf("%d %d", &n, &k);
	for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
	std::sort(arr, arr + n);
	for (int i = 0; i < n - 1; i++)
		s += arr[i] = arr[i + 1] - arr[i];
	std::sort(arr, arr + n - 1);
	for (int i = n - 2; i >= 0 && --k; i--) s -= arr[i];
	printf("%d", s);
}
반응형

'Algorithm' 카테고리의 다른 글

백준 4386 : 별자리 만들기  (0) 2021.11.16
백준 14225 : 부분수열의 합  (0) 2021.11.16
백준 4796 : 캠핑  (0) 2021.11.16
백준 1774 : 우주신과의 교감  (0) 2021.11.16
백준 16927 : 배열 돌리기 2  (0) 2021.11.16

+ Recent posts