프로그래머스 백준 문제

가장 긴 공통인 수열(문장)

전한준 2025. 7. 16. 16:37

15482번: 한글 LCS

 

 

 

 

 

일단 두 문자를 입력을 받고 칸을 비교를 한다. (0,0 이 빈칸으로 시작이니)

같으면 증가를 시켜주고 틀리면 옆 아래 같은 걸로 이거를 채워준다. 

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main{
    public static void main(String []args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String str=br.readLine();
        String str2=br.readLine();
        int n=str.length();
        int m=str2.length();
        int [][]dp=new int[n+1][m+1];
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(str.charAt(i)==str2.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.println(dp[n][m]);
        
        
        
        
    }
}

 

[알고리즘] LCS (최장 공통 부분 수열)

 

[알고리즘] LCS (최장 공통 부분 수열)

목차 LCS란? LCS는 Longest Common Subsequence의 약자이다. 말 그대로 가장 긴 공통된 부분 수열이다. LCS는 보통 주어진 두 수열에서 각각의 부분 수열들 중, 서로 같은 부분 수열 중에서 가장 긴 부분 수

propercoding.tistory.com