77 3) ๋ ๋ฌธ์๊ฐ ๋ค๋ฅด๋ฉด, ์์ชฝ ๋๋ ์ผ์ชฝ ์ค ๋ ํฐ ๊ฐ์ ๊ฐ์ ธ์ด
88
99์๊ฐ ๋ณต์ก๋: 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)์
1414
1515๊ณต๊ฐ ๋ณต์ก๋: O(m ร n)
16- (m+1) ร (n+1) ํฌ๊ธฐ์ 2์ฐจ์ ๋ฐฐ์ด dp๋ฅผ ์ฌ์ฉํฉ๋๋ค
16+ (m+1) ร (n+1) ํฌ๊ธฐ์ 2์ฐจ์ ๋ฐฐ์ด dp๋ฅผ ์ฌ์ฉํจ
1717 ๋ฐ๋ผ์ ๊ณต๊ฐ ๋ณต์ก๋๋ O(m ร n)์
๋๋ค
1818
1919'''
@@ -25,25 +25,23 @@ def longestCommonSubsequence(self, text1: str, text2: str):
2525
2626 # (m+1) x (n+1) ํฌ๊ธฐ์ 2์ฐจ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ ๋ชจ๋ ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํ
2727 # +1์ ํ๋ ์ด์ : ๋น ๋ฌธ์์ด๊ณผ์ ๋น๊ต๋ฅผ ์ํด ์ฒซ ๋ฒ์งธ ํ๊ณผ ์ด์ 0์ผ๋ก ๋
28- dp = [[0 ] * (n + 1 ) for _ in range (m + 1 )]
28+ dp = [[0 ] * (n + 1 ) for k in range (m + 1 )]
2929
3030 # 1๋ถํฐ ์์ํ๋ ์ด์ : 0๋ฒ์งธ ํ๊ณผ ์ด์ ๋น ๋ฌธ์์ด์ ์๋ฏธํ๋ฏ๋ก ์ด๋ฏธ 0์ผ๋ก ์ด๊ธฐํ๋จ
3131 for i in range (1 , m + 1 ): # text1์ ๊ฐ ๋ฌธ์์ ๋ํด
3232 for j in range (1 , n + 1 ): # text2์ ๊ฐ ๋ฌธ์์ ๋ํด
3333 # text1์ (i-1)๋ฒ์งธ ๋ฌธ์์ text2์ (j-1)๋ฒ์งธ ๋ฌธ์๊ฐ ๊ฐ์์ง ํ์ธ
3434 # i-1, j-1์ ์ฌ์ฉํ๋ ์ด์ : dp ๋ฐฐ์ด์ 1๋ถํฐ ์์ํ์ง๋ง ๋ฌธ์์ด ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์
3535 if text1 [i - 1 ] == text2 [j - 1 ]:
36- # ๊ฐ์ผ๋ฉด: ๋๊ฐ์ ์ ๊ฐ์ 1์ ๋ํจ (์ด์ ๊น์ง์ LCS + ํ์ฌ ์ผ์นํ๋ ๋ฌธ์ 1๊ฐ)
36+ # ๊ฐ์ผ๋ฉด: ๋๊ฐ์ ์ ๊ฐ์ 1์ ๋ํจ (์ด์ ๊น์ง์ ๊ฐ์ฅ ๊ธด ๊ณตํต ๋ถ๋ถ์์ด + ํ์ฌ ์ผ์นํ๋ ๋ฌธ์ 1๊ฐ)
3737 dp [i ][j ] = dp [i - 1 ][j - 1 ] + 1
3838 else :
3939 # ๋ค๋ฅด๋ฉด: ์์ชฝ ๊ฐ๊ณผ ์ผ์ชฝ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ ์ ํ
4040 # ์์ชฝ: text1์์ ํ์ฌ ๋ฌธ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ
4141 # ์ผ์ชฝ: text2์์ ํ์ฌ ๋ฌธ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ
4242 dp [i ][j ] = max (dp [i - 1 ][j ], dp [i ][j - 1 ])
4343
44- # dp[m][n]์๋ ์ ์ฒด ๋ฌธ์์ด์ ๋ํ LCS ๊ธธ์ด๊ฐ ์ ์ฅ๋จ
44+ # dp[m][n]์๋ ์ ์ฒด ๋ฌธ์์ด์ ๋ํ ๊ฐ์ฅ ๊ธด ๊ณตํต ๋ถ๋ถ์์ด ๊ธธ์ด๊ฐ ์ ์ฅ๋จ
4545 return dp [m ][n ]
4646
4747
48-
49-
0 commit comments