File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.BufferedReader ;
3+ import java.io.InputStreamReader ;
4+ import java.util.PriorityQueue ;
5+ import java.util.StringTokenizer ;
6+ import java.util.Comparator ;
7+
8+ public class Main {
9+
10+ public static void main (String [] args ) throws Exception {
11+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
12+ StringTokenizer st = new StringTokenizer (br. readLine());
13+ int N = Integer . parseInt(st. nextToken());
14+ int K = Integer . parseInt(st. nextToken());
15+
16+ int [] height = new int [N ];
17+ st = new StringTokenizer (br. readLine());
18+ for (int i = 0 ; i < N ; i++ ) {
19+ height[i] = Integer . parseInt(st. nextToken());
20+ }
21+
22+ int [] diffs = new int [N - 1 ];
23+ for (int i = 0 ; i < N - 1 ; i++ ) {
24+ diffs[i] = height[i + 1 ] - height[i];
25+ }
26+ // 자바는 기본이 minheap이라서 이렇게 comparator를 두어야한다
27+ PriorityQueue<Integer > maxHeap = new PriorityQueue<> (Comparator . reverseOrder());
28+
29+ int total = 0 ;
30+ for (int d : diffs) {
31+ total += d;
32+ maxHeap. offer(d);
33+ }
34+ for (int i = 0 ; i < K - 1 ; i++ ) {
35+ total -= maxHeap. poll();
36+ }
37+ System . out. println(total);
38+ }
39+ }
40+ ```
You can’t perform that action at this time.
0 commit comments