From 0cef62bf6badfbc0b71a707d20eb8296f2edf0e4 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Sun, 21 Sep 2025 22:24:02 +0900 Subject: [PATCH] =?UTF-8?q?[20250921]=20BOJ=20/=20G4=20/=20LCS3=20/=20?= =?UTF-8?q?=EC=9D=B4=EC=A4=80=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JHLEE325/202509/21 BOJ G4 LCS3.md | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 JHLEE325/202509/21 BOJ G4 LCS3.md diff --git a/JHLEE325/202509/21 BOJ G4 LCS3.md b/JHLEE325/202509/21 BOJ G4 LCS3.md new file mode 100644 index 00000000..83874b83 --- /dev/null +++ b/JHLEE325/202509/21 BOJ G4 LCS3.md @@ -0,0 +1,33 @@ +```java +import java.io.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + String a = br.readLine(); + String b = br.readLine(); + String c = br.readLine(); + + int alength = a.length(); + int blength = b.length(); + int clength = c.length(); + + int[][][] dp = new int[alength + 1][blength + 1][clength + 1]; + + for (int i = 1; i <= alength; i++) { + for (int j = 1; j <= blength; j++) { + for (int k = 1; k <= clength; k++) { + if (a.charAt(i - 1) == b.charAt(j - 1) && b.charAt(j - 1) == c.charAt(k - 1)) { + dp[i][j][k] = dp[i - 1][j - 1][k - 1] + 1; + } else { + dp[i][j][k] = Math.max(dp[i - 1][j][k], + Math.max(dp[i][j - 1][k], dp[i][j][k - 1])); + } + } + } + } + + System.out.println(dp[alength][blength][clength]); + } +} +```