From 8d3f9d132b2fba4cd9226af5f94efee11835ed57 Mon Sep 17 00:00:00 2001 From: Jonghwan Lee <123362165+0224LJH@users.noreply.github.com> Date: Sat, 12 Jul 2025 13:24:41 +0900 Subject: [PATCH] =?UTF-8?q?[20250712]=20BOJ=20/=20G5=20/=20=EC=88=8F?= =?UTF-8?q?=EC=BD=94=EB=94=A9=EC=9D=98=20=EC=99=95=20=EB=B8=8C=EC=8B=A4?= =?UTF-8?q?=EC=9D=B4=20/=20=EC=9D=B4=EC=A2=85=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5 \353\270\214\354\213\244\354\235\264.md" | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 "0224LJH/202507/12 BOJ \354\210\217\354\275\224\353\224\251\354\235\230 \354\231\225 \353\270\214\354\213\244\354\235\264.md" diff --git "a/0224LJH/202507/12 BOJ \354\210\217\354\275\224\353\224\251\354\235\230 \354\231\225 \353\270\214\354\213\244\354\235\264.md" "b/0224LJH/202507/12 BOJ \354\210\217\354\275\224\353\224\251\354\235\230 \354\231\225 \353\270\214\354\213\244\354\235\264.md" new file mode 100644 index 00000000..fb402441 --- /dev/null +++ "b/0224LJH/202507/12 BOJ \354\210\217\354\275\224\353\224\251\354\235\230 \354\231\225 \353\270\214\354\213\244\354\235\264.md" @@ -0,0 +1,63 @@ +```java + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Main { + static int len,maxRemoveCnt, ans; + static int[] arr,minArr,maxArr; + + public static void main(String[] args) throws IOException { + init(); + process(); + print(); + } + + private static void init() throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + len = Integer.parseInt(st.nextToken()); + maxRemoveCnt = Integer.parseInt(st.nextToken()); + arr = new int[len]; + ans = Integer.MIN_VALUE; + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < len; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + } + + } + + private static void process() { + getMinAndMaxArr(); + for (int i = 0; i <= maxRemoveCnt; i++) { + int end = (len-1) - i; + int start = maxRemoveCnt - i; + + ans = Math.max(maxArr[end] - arr[start], ans); + } + } + + private static void getMinAndMaxArr() { + minArr = new int[len]; // 0~i번까지의 숫자중 최솟값 + maxArr = new int[len]; // len-1 ~ len-1-i번까지의 숫자 중 최댓값 + + minArr[0] = arr[0]; + for (int i = 1; i < len; i++) { + minArr[i] = Math.min(minArr[i-1], arr[i]); + } + maxArr[len-1] = arr[len-1]; + for (int i = len-2; i >= 0; i--) { + maxArr[i] = Math.max(maxArr[i+1], arr[i]); + } + } + + private static void print() { + System.out.println(ans); + } + + + +} +``` \ No newline at end of file