https://www.acmicpc.net/problem/2212
2212번: 센서
첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있
www.acmicpc.net
3일 잡고 있었는데 결국 이건 정답을 보고 해결했습니다 ㅠㅠ 오래걸렸던 이유가 문제를 조금 잘못이했더라고요
거리차에서 최대값들은 k-1개 집중국을 제외시키는것까지는 해결을 햇는데 그 해결된 상태에서 나머지 거리합은 그냥 집중국간의 거리내에 포함되어 있어야 했습니다 ㅠ
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, K;
cin >> N >> K;
vector<int> sensors(N);
for(int i = 0; i < N; ++i) {
cin >> sensors[i];
}
if(K >= N) {
cout << 0 << '\n';
return 0;
}
sort(sensors.begin(), sensors.end());
vector<int> gaps(N - 1);
for(int i = 0; i < N - 1; ++i) {
gaps[i] = sensors[i + 1] - sensors[i];
}
sort(gaps.begin(), gaps.end(), greater<int>());
int gapSum = 0;
for(int i = 0; i < K - 1; ++i) {
gapSum += gaps[i];
}
int result = sensors[N - 1] - sensors[0] - gapSum;
cout << result << '\n';
return 0;
}
'알고리즘 공부' 카테고리의 다른 글
백준 동전1 (0) | 2023.09.12 |
---|---|
백준 로봇 청소기 (0) | 2023.09.11 |
백준 트리 1068 (0) | 2023.09.05 |
백준 인구이동 (3) | 2023.09.05 |
백준 가장 긴 증가하는 부분 수열 (0) | 2023.08.13 |