From ac2f364a15de38c1aa2d788085242a36bd05e5e4 Mon Sep 17 00:00:00 2001 From: Jinyeong Seol Date: Tue, 18 Feb 2025 14:34:16 +0900 Subject: [PATCH] =?UTF-8?q?[20250218]=20BOJ=20/=20=EA=B3=A8=EB=93=9C5=20/?= =?UTF-8?q?=20=EB=94=94=EC=A0=80=ED=8A=B8=20/=20=EC=84=A4=EC=A7=84?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5 \353\224\224\354\240\200\355\212\270.md" | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 "Seol-JY/202502/18 BOJ G5 \353\224\224\354\240\200\355\212\270.md" diff --git "a/Seol-JY/202502/18 BOJ G5 \353\224\224\354\240\200\355\212\270.md" "b/Seol-JY/202502/18 BOJ G5 \353\224\224\354\240\200\355\212\270.md" new file mode 100644 index 00000000..41ae4dd1 --- /dev/null +++ "b/Seol-JY/202502/18 BOJ G5 \353\224\224\354\240\200\355\212\270.md" @@ -0,0 +1,48 @@ +```java +import java.util.*; +import java.io.*; + +public class Main { + static int N; + static int M; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + N = nextInt(st); + M = nextInt(st); + int[][] arr = new int[M][N]; + int[][] dp = new int[M][N]; + for (int i = 0; i < M; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < N; j++) { + arr[i][j] = nextInt(st); + if (j == 0) { + dp[i][0] = arr[i][j]; + } + } + } + for (int i = 1; i < N; i++) { + for (int j = 0; j < M; j++) { + int max = Integer.MIN_VALUE; + for (int k = 0; k < M; k++) { + if (k == j) max = Math.max(max, dp[k][i-1] + arr[j][i]/2); + else max = Math.max(max, dp[k][i-1] + arr[j][i]); + } + dp[j][i] = max; + } + } + + int answer = Integer.MIN_VALUE; + for (int i = 0; i < M; i++) { + answer = Math.max(answer, dp[i][N-1]); + } + System.out.println(answer); + } + + private static int nextInt(StringTokenizer st) { + return Integer.parseInt(st.nextToken()); + } +} +``` +