Skip to content

Commit

Permalink
[Gold IV] Title: LCS 2, Time: 4 ms, Memory: 6004 KB -BaekjoonHub
Browse files Browse the repository at this point in the history
  • Loading branch information
belowyoon committed Mar 11, 2024
1 parent 73d71f2 commit 73bc684
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
49 changes: 49 additions & 0 deletions 백준/Gold/9252. LCS 2/LCS 2.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
//freopen("input.txt", "r", stdin);

string s1, s2;
getline(cin, s1);
getline(cin, s2);
s1 = " " + s1;
s2 = " " + s2;

vector<vector<int>> dp(s1.size(), vector<int>(s2.size(), 0));

for (int i = 1; i < s1.size(); i++) {
for (int j = 1; j < s2.size(); j++) {
if (s1[i] == s2[j]) dp[i][j] = dp[i - 1][j - 1] + 1;
else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}

int x = s1.size()-1, y = s2.size()-1;
int res = dp[s1.size()-1][s2.size()-1];

vector<char> ans;
while (dp[x][y]) {
if (dp[x][y] == dp[x-1][y]) {
x--;
} else if (dp[x][y] == dp[x][y-1]) {
y--;
} else {
ans.push_back(s1[x]);
x--;
y--;
}
}
cout << res << '\n';
if (res) {
for (int i = ans.size() - 1; i >= 0; i--) {
cout << ans[i];
}
}
return 0;
}
32 changes: 32 additions & 0 deletions 백준/Gold/9252. LCS 2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# [Gold IV] LCS 2 - 9252

[문제 링크](https://www.acmicpc.net/problem/9252)

### 성능 요약

메모리: 6004 KB, 시간: 4 ms

### 분류

다이나믹 프로그래밍

### 제출 일자

2024년 3월 12일 02:45:17

### 문제 설명

<p>LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.</p>

<p>예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.</p>

### 입력

<p>첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.</p>

### 출력

<p>첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를, 둘째 줄에 LCS를 출력한다.</p>

<p>LCS가 여러 가지인 경우에는 아무거나 출력하고, LCS의 길이가 0인 경우에는 둘째 줄을 출력하지 않는다.</p>

0 comments on commit 73bc684

Please sign in to comment.