삐까냥의 파도타기
Q9251. LCS 본문
String을 비교하며 최대값을 저장하며 나아가는 로직
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Q9251 { 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];
for (int i = 1; i <= firstString.length(); i++) { int yChar = firstString.charAt(i-1); for (int j = 1; j <= secondString.length(); j++) { int xChar = secondString.charAt(j-1); if (yChar == xChar) { dp[i][j] = dp[i-1][j-1]+1; } else { dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]); } } }
System.out.println(dp[firstString.length()][secondString.length()]); } } |
'코딩 > 백준 알고리즘' 카테고리의 다른 글
Q9507. Generations of Tribbles (0) | 2019.02.24 |
---|---|
Q9252. LCS 2 (0) | 2019.02.23 |
Q2133. 타일 채우기 (0) | 2019.02.23 |
Q1699. 제곱수의 합 (0) | 2019.02.23 |
Q1904. 01타일 (0) | 2019.02.23 |