Skip to content

Commit 0ab1e65

Browse files
authored
Merge pull request #1893 from jinvicky/main
[jinvicky] WEEK 08 solutions
2 parents 9791481 + 8373128 commit 0ab1e65

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
class Solution {
2+
public int longestCommonSubsequence(String text1, String text2) {
3+
int m = text1.length();
4+
int n = text2.length();
5+
6+
int[][] dp = new int[m+1][n+1];
7+
8+
for (int i = 0; i < m; i++) {
9+
for (int j = 0; j < n; j++) {
10+
// DP ๊ณ„์‚ฐ์„ +1๋กœ ํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ์ด์ „ ์ผ€์ด์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” -1๋กœ๋งŒ ์ ‘๊ทผํ•ด์„œ ๋ฒ”์œ„ ์—๋Ÿฌ๊ฐ€ ๋งŽ์ด ๋‚ฌ์—ˆ๋‹ค.
11+
if (text1.charAt(i) == text2.charAt(j)) {
12+
dp[i + 1][j + 1] = dp[i][j] + 1;
13+
} else {
14+
dp[i + 1][j + 1] = Math.max(dp[i][j + 1], dp[i + 1][j]);
15+
}
16+
}
17+
}
18+
19+
return dp[m][n];
20+
}
21+
22+
// -1์„ ์ฐธ์กฐํ•ด ์ด์ „ ์ผ€์ด์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” 1๋ถ€ํ„ฐ m,n๊นŒ์ง€ ํ•˜๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
23+
public int longestCommonSubsequence2(String text1, String text2) {
24+
int m = text1.length();
25+
int n = text2.length();
26+
int[][] dp = new int[m + 1][n + 1];
27+
28+
for (int i = 1; i <= m; i++) {
29+
for (int j = 1; j <= n; j++) {
30+
if (text1.charAt(i - 1) == text2.charAt(j - 1)) {
31+
dp[i][j] = dp[i - 1][j - 1] + 1; // ๋ฌธ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด ๋Œ€๊ฐ์„  ๊ฐ’ + 1
32+
} else {
33+
dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]); // ์œ„ or ์™ผ์ชฝ ์ค‘ ํฐ ๊ฐ’
34+
}
35+
}
36+
}
37+
38+
return dp[m][n];
39+
}
40+
}

0 commit comments

Comments
ย (0)