삐까냥의 파도타기

Q5582. 공통 부분 문자열 본문

코딩/백준 알고리즘

Q5582. 공통 부분 문자열

금손형아 2019. 3. 3. 14:22
연속된 문자열의 길이를 저장하며 나아가는 로직
k[i][j]의 문자를 비교하여, 같은 경우 k[i][j] = k[i-1][j-1]+1 을 합니다.





import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q5582 {


static int[][] dp;

public static void main(String[] args) throws Exception {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

StringTokenizer st = new StringTokenizer(br.readLine());

String firstString = st.nextToken();

st = new StringTokenizer(br.readLine());

String secondString = st.nextToken();


dp = new int[firstString.length()+1][secondString.length()+1];

int maxLength = 0;

for (int i = 1; i <= firstString.length(); i++) {

char tempChar1 = firstString.charAt(i-1);

for (int j = 1; j <= secondString.length(); j++) {

char tempChar2 = secondString.charAt(j-1);

if (tempChar1 == tempChar2) {

int length = dp[i-1][j-1]+1;

dp[i][j] = length;

maxLength = Math.max(maxLength, length);

}

}

}

System.out.println(maxLength);

}

}


'코딩 > 백준 알고리즘' 카테고리의 다른 글

2602. 돌다리 건너기  (0) 2019.03.17
Q2352. 반도체 설계  (0) 2019.03.06
Q1038. 감소하는 수  (0) 2019.03.03
Q2631. 줄세우기  (0) 2019.03.02
Q2169. 로봇 조종하기  (0) 2019.03.02