반응형
https://www.acmicpc.net/problem/15482
- 문제
- 풀이 방법
이 문제는 전형적인 DP의 LCS 문제이다. 조금 더 디테일한 풀이는 밑에 링크를 참고하면 되겠다.
https://propercoding.tistory.com/entry/알고리즘-LCS-최장-공통-부분-수열
- 풀이
import java.io.*;
public class Main {
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 n = s1.length();
int m = s2.length();
int[][] dp = new int[n+1][m+1];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (s1.charAt(i) == s2.charAt(j)) {
dp[i+1][j+1] = dp[i][j] + 1;
} else {
dp[i+1][j+1] = Math.max(dp[i+1][j], dp[i][j+1]);
}
}
}
System.out.print(dp[n][m]);
}
}
- 후기
되게 전형적인 LCS 문제여서 LCS 이론을 아는 사람은 쉽게 풀 수 있는 문제였다.
반응형
'백준' 카테고리의 다른 글
[백준] 2583번 : 영역 구하기 – JAVA [자바] (0) | 2022.02.04 |
---|---|
[백준] 10026번 : 적록색약 – JAVA [자바] (0) | 2022.01.31 |
[백준] 16948번 : 데스 나이트 – JAVA [자바] (0) | 2022.01.29 |
[백준] 17213번 : 과일 서리 – JAVA [자바] (0) | 2022.01.27 |
[백준] 15990번 : 1, 2, 3 더하기 5 – JAVA [자바] (0) | 2022.01.26 |
댓글