7
7
3) ๋ ๋ฌธ์๊ฐ ๋ค๋ฅด๋ฉด, ์์ชฝ ๋๋ ์ผ์ชฝ ์ค ๋ ํฐ ๊ฐ์ ๊ฐ์ ธ์ด
8
8
9
9
์๊ฐ ๋ณต์ก๋: O(m ร n)
10
- ์ธ๋ถ ๋ฐ๋ณต๋ฌธ์ด m๋ฒ ์คํ๋ฉ๋๋ค (text1์ ๊ธธ์ด)
11
- ๋ด๋ถ ๋ฐ๋ณต๋ฌธ์ด n๋ฒ ์คํ๋ฉ๋๋ค (text2์ ๊ธธ์ด)
12
- ๊ฐ ๋ฐ๋ณต์์ ํ๋ ์์
์ ์์ ์๊ฐ O(1)์
๋๋ค
13
- ๋ฐ๋ผ์ ์ด ์๊ฐ ๋ณต์ก๋๋ O(m ร n)์
๋๋ค
10
+ ์ธ๋ถ ๋ฐ๋ณต๋ฌธ์ด m๋ฒ ์คํ๋จ (text1์ ๊ธธ์ด)
11
+ ๋ด๋ถ ๋ฐ๋ณต๋ฌธ์ด n๋ฒ ์คํ๋จ (text2์ ๊ธธ์ด)
12
+ ๊ฐ ๋ฐ๋ณต์์ ํ๋ ์์
์ ์์ ์๊ฐ O(1)์
13
+ ๋ฐ๋ผ์ ์ด ์๊ฐ ๋ณต์ก๋๋ O(m ร n)์
14
14
15
15
๊ณต๊ฐ ๋ณต์ก๋: O(m ร n)
16
- (m+1) ร (n+1) ํฌ๊ธฐ์ 2์ฐจ์ ๋ฐฐ์ด dp๋ฅผ ์ฌ์ฉํฉ๋๋ค
16
+ (m+1) ร (n+1) ํฌ๊ธฐ์ 2์ฐจ์ ๋ฐฐ์ด dp๋ฅผ ์ฌ์ฉํจ
17
17
๋ฐ๋ผ์ ๊ณต๊ฐ ๋ณต์ก๋๋ O(m ร n)์
๋๋ค
18
18
19
19
'''
@@ -25,25 +25,23 @@ def longestCommonSubsequence(self, text1: str, text2: str):
25
25
26
26
# (m+1) x (n+1) ํฌ๊ธฐ์ 2์ฐจ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ ๋ชจ๋ ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํ
27
27
# +1์ ํ๋ ์ด์ : ๋น ๋ฌธ์์ด๊ณผ์ ๋น๊ต๋ฅผ ์ํด ์ฒซ ๋ฒ์งธ ํ๊ณผ ์ด์ 0์ผ๋ก ๋
28
- dp = [[0 ] * (n + 1 ) for _ in range (m + 1 )]
28
+ dp = [[0 ] * (n + 1 ) for k in range (m + 1 )]
29
29
30
30
# 1๋ถํฐ ์์ํ๋ ์ด์ : 0๋ฒ์งธ ํ๊ณผ ์ด์ ๋น ๋ฌธ์์ด์ ์๋ฏธํ๋ฏ๋ก ์ด๋ฏธ 0์ผ๋ก ์ด๊ธฐํ๋จ
31
31
for i in range (1 , m + 1 ): # text1์ ๊ฐ ๋ฌธ์์ ๋ํด
32
32
for j in range (1 , n + 1 ): # text2์ ๊ฐ ๋ฌธ์์ ๋ํด
33
33
# text1์ (i-1)๋ฒ์งธ ๋ฌธ์์ text2์ (j-1)๋ฒ์งธ ๋ฌธ์๊ฐ ๊ฐ์์ง ํ์ธ
34
34
# i-1, j-1์ ์ฌ์ฉํ๋ ์ด์ : dp ๋ฐฐ์ด์ 1๋ถํฐ ์์ํ์ง๋ง ๋ฌธ์์ด ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์
35
35
if text1 [i - 1 ] == text2 [j - 1 ]:
36
- # ๊ฐ์ผ๋ฉด: ๋๊ฐ์ ์ ๊ฐ์ 1์ ๋ํจ (์ด์ ๊น์ง์ LCS + ํ์ฌ ์ผ์นํ๋ ๋ฌธ์ 1๊ฐ)
36
+ # ๊ฐ์ผ๋ฉด: ๋๊ฐ์ ์ ๊ฐ์ 1์ ๋ํจ (์ด์ ๊น์ง์ ๊ฐ์ฅ ๊ธด ๊ณตํต ๋ถ๋ถ์์ด + ํ์ฌ ์ผ์นํ๋ ๋ฌธ์ 1๊ฐ)
37
37
dp [i ][j ] = dp [i - 1 ][j - 1 ] + 1
38
38
else :
39
39
# ๋ค๋ฅด๋ฉด: ์์ชฝ ๊ฐ๊ณผ ์ผ์ชฝ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ ์ ํ
40
40
# ์์ชฝ: text1์์ ํ์ฌ ๋ฌธ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ
41
41
# ์ผ์ชฝ: text2์์ ํ์ฌ ๋ฌธ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ
42
42
dp [i ][j ] = max (dp [i - 1 ][j ], dp [i ][j - 1 ])
43
43
44
- # dp[m][n]์๋ ์ ์ฒด ๋ฌธ์์ด์ ๋ํ LCS ๊ธธ์ด๊ฐ ์ ์ฅ๋จ
44
+ # dp[m][n]์๋ ์ ์ฒด ๋ฌธ์์ด์ ๋ํ ๊ฐ์ฅ ๊ธด ๊ณตํต ๋ถ๋ถ์์ด ๊ธธ์ด๊ฐ ์ ์ฅ๋จ
45
45
return dp [m ][n ]
46
46
47
47
48
-
49
-
0 commit comments