문제출처 : https://www.acmicpc.net/problem/15553
code
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int N, K, result = 0, i;
cin >> N >> K;
vector<int> arrive(N);
vector<int> match(N - 1);
for (int i = 0; i < N; i++)
cin >> arrive[i];
for (i = 0; i < N - 1; i++)
match[i] = arrive[i + 1] - arrive[i];
sort(match.begin(), match.end());
for (i = 0; i < N - K; i++)
result += match[i];
for (; i < N - 1; i++)
result++;
cout << result + 1;
return 0;
}
친구가 오는 시간의 텀을 배열로 만들어서 오름차순정렬을 해준다.
왜냐면 텀이 긴것부터 더해버리면 최솟값이 안나오기 때문.
이것만 알면 나머지는 쉽다.