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); + } +} +```