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

+ Recent posts