[백준] 9251 LCS - Java
LCS 알고리즘을 알면 dp를 이용해 쉽게 풀 수 있다.. 모르면 못풀고 알면 푸는 그런 문제..
import java.io.*;
import java.util.*;
public class Main {
static String str1;
static String str2;
static int[][] dp;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str1 = br.readLine();
str2 = br.readLine();
dp = new int[str1.length()][str2.length()];
for(int i=0; i<str1.length(); i++){
for(int j=0; j<str2.length(); j++){
dp[i][j] = -1;
}
}
System.out.println(LCS(str1.length() - 1, str2.length() - 1));
}
static int LCS(int a, int b){
if(a == -1 || b == -1){
return 0;
}
if(dp[a][b] == -1){
if(str1.charAt(a) == str2.charAt(b)){
dp[a][b] = LCS(a - 1, b - 1) + 1;
}else{
dp[a][b] = Math.max(LCS(a -1, b), LCS(a, b-1));
}
}
return dp[a][b];
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 25395 커넥티드 카 실험 - Java (0) | 2022.07.28 |
---|---|
[백준] 1766 문제집 - Java (0) | 2022.07.28 |
[백준] 12865 평범한 배낭 - Java (0) | 2022.07.27 |
[백준] 2193 이친수 - Java (0) | 2022.07.26 |
[백준] 1786 찾기 - Java (0) | 2022.07.19 |
댓글
이 글 공유하기
다른 글
-
[백준] 25395 커넥티드 카 실험 - Java
[백준] 25395 커넥티드 카 실험 - Java
2022.07.28 -
[백준] 1766 문제집 - Java
[백준] 1766 문제집 - Java
2022.07.28 -
[백준] 12865 평범한 배낭 - Java
[백준] 12865 평범한 배낭 - Java
2022.07.27 -
[백준] 2193 이친수 - Java
[백준] 2193 이친수 - Java
2022.07.26