LCS
문제
LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.
예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.
입력
첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.
출력
첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.
예제 입력
ACAYKP
CAPCAK
예제 출력
4
코드
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));
String A = br.readLine();
String B = br.readLine();
int dp[][]=new int[A.length()+1][B.length()+1];
for (int i = 1; i <= A.length(); i++) {
for (int i2 = 1; i2 <= B.length(); i2++) {
if (A.charAt(i-1)==B.charAt(i2-1)) {
dp[i][i2]=dp[i-1][i2-1]+1;
}
else {
dp[i][i2]=Math.max(dp[i][i2-1],dp[i-1][i2]);
}
}
}
System.out.print(dp[A.length()][B.length()]);
}
}'백준(Java)' 카테고리의 다른 글
| [백준] 13458번 시험 감독 (자바) (1) | 2025.05.24 |
|---|---|
| [백준] 9252번 LCS 2 (자바) (0) | 2025.05.20 |
| [백준] 10974번. 모든 순열 (자바) (0) | 2025.05.15 |
| [백준] 15649번. N과 M (1) (자바) (0) | 2025.05.15 |
| [백준] 18258번 '큐2' (자바/JAVA) (0) | 2025.04.30 |