acmicpc
[BAEKJOON] 5582. 공통 부분 문자열
코드와이
2021. 7. 16. 18:58
문제링크
https://www.acmicpc.net/problem/5582
5582번: 공통 부분 문자열
두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들
www.acmicpc.net
package acmicpc.Gold5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 공통_부분_문자열 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
String s2 = br.readLine();
int l1 = s1.length();
int l2 = s2.length();
int ans = 0;
int[][] dp = new int[l1+1][l2+1];
for(int i = 1 ; i <= l1 ; i++) {
for(int j = 1 ; j <= l2 ; j++) {
if(s1.charAt(i - 1) == s2.charAt(j - 1)) {
dp[i][j] = dp[i-1][j-1] + 1;
ans = Math.max(ans, dp[i][j]);
}
}
}
System.out.println(ans);
}
}