Search
Duplicate
📕

센서

주차
문제번호
2212
언어
C++
티어
골드
유형
그리디
정렬
nj_Blog
nj_상태
이해도
33%
풀이
사람
이해도 2
13 more properties

문제접근

놓쳤던 부분

문제 자체를 이해를 못 했음
for문을 n - k만큼만 돌리는 이유
dist는 센서간의 차이 벡터이기 때문에 크기가 n - 1
dist는 k개의 집중국인 구간과 그렇지 않은 구간이 합쳐져 있음
집중국이 k개이면 그 간격의 개수는 k - 1, 따라서 벡터에서 더해야할 집중국의 개수는 k - 1을 빼면됨
n - 1 - (k - 1) = n - k

코드

2184 KB

0 ms

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main(void) { int n,k; vector<int> sensor; vector<int> dist; int answer = 0; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> k; sensor.resize(n); dist.resize(n - 1); for (int i = 0; i < n; i++) cin >> sensor[i]; sort(sensor.begin(), sensor.end()); for(int i = 0; i < n - 1; i++) dist[i] = sensor[i + 1] - sensor[i]; sort(dist.begin(), dist.end()); for (int i = 0; i < n - k; i++) answer += dist[i]; cout << answer; return (0); }
C++
복사