From 08967284003062faa91436242fa0ad86c67e5827 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Tue, 29 Jul 2025 23:39:20 +0900 Subject: [PATCH] =?UTF-8?q?[20250729]=20BOJ=20/=20G5=20/=20=ED=96=89?= =?UTF-8?q?=EB=B3=B5=20=EC=9C=A0=EC=B9=98=EC=9B=90=20/=20=EC=9D=B4?= =?UTF-8?q?=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5 \354\234\240\354\271\230\354\233\220.md" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "LiiNi-coder/202507/29 BOJ \355\226\211\353\263\265 \354\234\240\354\271\230\354\233\220.md" diff --git "a/LiiNi-coder/202507/29 BOJ \355\226\211\353\263\265 \354\234\240\354\271\230\354\233\220.md" "b/LiiNi-coder/202507/29 BOJ \355\226\211\353\263\265 \354\234\240\354\271\230\354\233\220.md" new file mode 100644 index 00000000..aca9a718 --- /dev/null +++ "b/LiiNi-coder/202507/29 BOJ \355\226\211\353\263\265 \354\234\240\354\271\230\354\233\220.md" @@ -0,0 +1,40 @@ +```java +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.PriorityQueue; +import java.util.StringTokenizer; +import java.util.Comparator; + +public class Main { + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int N = Integer.parseInt(st.nextToken()); + int K = Integer.parseInt(st.nextToken()); + + int[] height = new int[N]; + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) { + height[i] = Integer.parseInt(st.nextToken()); + } + + int[] diffs = new int[N - 1]; + for (int i = 0; i < N - 1; i++) { + diffs[i] = height[i + 1] - height[i]; + } + //자바는 기본이 minheap이라서 이렇게 comparator를 두어야한다 + PriorityQueue maxHeap = new PriorityQueue<>(Comparator.reverseOrder()); + + int total = 0; + for (int d : diffs) { + total += d; + maxHeap.offer(d); + } + for (int i = 0; i < K - 1; i++) { + total -= maxHeap.poll(); + } + System.out.println(total); + } +} +```