Skip to content

Commit 0896728

Browse files
authored
[20250729] BOJ / G5 / 행복 유치원 / 이인희
1 parent dd973a9 commit 0896728

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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+
```

0 commit comments

Comments
 (0)