• 문제 링크
5582번: 공통 부분 문자열
두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String a = br.readLine();
String b = br.readLine();
int[][] dp = new int[a.length() + 1][b.length() + 1];
int max = 0;
for (int i = 0; i < a.length(); i++) {
for (int j = 0; j < b.length(); j++) {
if (a.charAt(i) == b.charAt(j)) {
dp[i + 1][j + 1] = dp[i][j] + 1;
max = Math.max(max, dp[i + 1][j + 1]);
}
}
}
bw.write(String.valueOf(max));
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 13301 타일 장식물 - Dynamic Programming / Java (0) | 2023.01.13 |
---|---|
[백준] 2096 내려가기 - Dynamic Programming / Java (0) | 2023.01.12 |
[백준] 9084 동전 - Dynamic Programming / Java (0) | 2023.01.10 |
[백준] 9625 BABBA - Dynamic Programming / Java (0) | 2023.01.09 |
[백준] 2615 오목 - Brute Force / Java (0) | 2023.01.08 |
댓글