백준 2212 센서

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

K개의 수신기 범위를 최소화 하는 문제

각 좌표간의 차이 값을 구한 후 큰 것 부터 빼서 해결한다.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    int N, K;
    cin>>N>>K;
    vector<int> positions(N);
    vector<int> diff(N-1);
    for(auto &pos:positions){
        cin>>pos;
    }
    sort(positions.begin(), positions.end());
    for(int i=0; i<N-1; ++i){
        diff[i]=positions[i+1]-positions[i];
    }
    sort(diff.begin(), diff.end(), greater<int>());
    int ret=0;
    for(int i=K-1; i<diff.size(); ++i){
        ret+=diff[i];
    }
    cout<<ret;
    //std::cout << "Hello, World!" << std::endl;
    return 0;
}

[jungin]
Written by@[jungin]
안녕하세요

GitHub