반응형
https://www.acmicpc.net/problem/2212
문제 해결 알고리즘
각 센서간의 차이를 구한 것들을 배열에 넣고 정렬한 후 큰 순서대로 차이들을 K-1개씩 센서 중에 가장 큰 정수거리와 가장 작은 정수거리를 뺀 값에 빼준다. 그 값을 출력한다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
int N, K; cin >> N >> K;
if(N == 1) {
cout << 0;
return 0;
}
vector<int> sensor(N);
vector<int> dis(N-1);
for(int i=0;i<N;i++){
cin >> sensor[i];
}
sort(sensor.begin(), sensor.end());
int result = sensor[N-1] - sensor[0];
for(int i=0;i<N-1;i++){
dis[i] = sensor[i+1] - sensor[i];
}
sort(dis.begin(), dis.end());
for(int i=N-1;i>=N-K;i--){
result -= dis[i];
}
cout << result;
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[문자열] BOJ 1213 팰린드롬 만들기 (0) | 2022.02.14 |
---|---|
[브루트 포스] BOJ 1198 삼각형으로 자르기 (0) | 2022.02.11 |
[자료구조, 우선순위 큐] BOJ 14698 전생했더니 슬라임 연구자였던 건에 대하여(Hard) (0) | 2022.02.05 |
[자료구조, 우선순위 큐] BOJ 2075 N번째 큰 수 (0) | 2022.02.02 |
[BFS] BOJ 14442 벽 부수고 이동하기 2 (0) | 2022.01.30 |