From 510d6e516bb49c47c65a5eef7c8a13b21eb0b799 Mon Sep 17 00:00:00 2001 From: Jinyeong Seol Date: Tue, 2 Dec 2025 23:50:21 +0900 Subject: [PATCH] =?UTF-8?q?[20251202]=20BOJ=20/=20G4=20/=20=EC=9E=90?= =?UTF-8?q?=EB=91=90=EB=82=98=EB=AC=B4=20/=20=EC=84=A4=EC=A7=84=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\353\202\230\353\254\264.md\342\200\216" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "Seol-JY/202512/02 BOJ G4 \354\236\220\353\221\220\353\202\230\353\254\264.md\342\200\216" diff --git "a/Seol-JY/202512/02 BOJ G4 \354\236\220\353\221\220\353\202\230\353\254\264.md\342\200\216" "b/Seol-JY/202512/02 BOJ G4 \354\236\220\353\221\220\353\202\230\353\254\264.md\342\200\216" new file mode 100644 index 00000000..f271f9d7 --- /dev/null +++ "b/Seol-JY/202512/02 BOJ G4 \354\236\220\353\221\220\353\202\230\353\254\264.md\342\200\216" @@ -0,0 +1,40 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + int T = Integer.parseInt(st.nextToken()); + int W = Integer.parseInt(st.nextToken()); + + int[] tree = new int[T + 1]; + for (int i = 1; i <= T; i++) { + tree[i] = Integer.parseInt(br.readLine().trim()); + } + + int[][] dp = new int[T + 1][W + 1]; + + for (int t = 1; t <= T; t++) { + for (int w = 0; w <= W; w++) { + int pos = (w % 2 == 0) ? 1 : 2; + int get = (tree[t] == pos) ? 1 : 0; + + if (w == 0) { + dp[t][w] = dp[t - 1][w] + get; + } else { + dp[t][w] = Math.max(dp[t - 1][w], dp[t - 1][w - 1]) + get; + } + } + } + + int ans = 0; + for (int w = 0; w <= W; w++) { + ans = Math.max(ans, dp[T][w]); + } + + System.out.println(ans); + } +} +```