File tree Expand file tree Collapse file tree 4 files changed +76
-0
lines changed
longest-common-subsequence
longest-repeating-character-replacement Expand file tree Collapse file tree 4 files changed +76
-0
lines changed Original file line number Diff line number Diff line change 1+ '''
2+ TC : O(nm)
3+ SC : O(nm)
4+ '''
5+ class Solution :
6+ def longestCommonSubsequence (self , text1 : str , text2 : str ) -> int :
7+ #dp 2์ฐจ์ ๋ฐฐ์ด ์์ฑ
8+ dp = [[0 for _ in range (len (text2 ) + 1 )] for _ in range (len (text1 ) + 1 )]
9+ #i์ j๋ dp๊ธฐ์ค
10+ for i in range (1 , len (text1 ) + 1 ):
11+ for j in range (1 , len (text2 ) + 1 ):
12+ if text1 [i - 1 ] == text2 [j - 1 ]:
13+ dp [i ][j ] = dp [i - 1 ][j - 1 ] + 1
14+ else :
15+ dp [i ][j ] = max (dp [i ][j - 1 ], dp [i - 1 ][j ])
16+ return dp [i ][j ]
Original file line number Diff line number Diff line change 1+ '''
2+ TC : O(n)
3+ ๋ฌธ์์ด s๋ฅผ ์ด ํ๋ฒ ์ํํ๋ค
4+ SC : O(1)
5+ ์ต๋ 26๊ฐ์ ๊ธ์๋ฅผ ๋์
๋๋ฆฌ์ ์ ์ฅํ๋ค
6+ '''
7+ class Solution :
8+ def characterReplacement (self , s : str , k : int ) -> int :
9+ start = 0
10+ max_len = 0
11+ max_cnt = 0
12+ substr_len = 0
13+ # ๋ฌธ์์ด s์ ๋ํ ํด์ํ
์ด๋ธ์ ๋ง๋ค๊ณ ์ด๊ธฐ ๊ฐ์ 0์ผ๋ก ์ค์
14+ dic = {char : 0 for char in s }
15+
16+ # ๊ธฐ๋ณธ์ ์ผ๋ก end๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํค๋ ๋ฐฉํฅ
17+ for end in range (len (s )):
18+ dic [s [end ]] += 1
19+
20+ # ํ์ฌ๊น์ง์ ์ต๋ค ๋น๋ ๊ธ์์ ๊ณ์ฐ
21+ max_cnt = max (max_cnt , dic [s [end ]])
22+
23+ # ํ์ฌ ๋ถ๋ถ ๋ฌธ์์ด ์์์(์ฆ end๊ฐ ๊ณ ์ ๋ ์ํ์์)
24+ # ๋ฐ๊ฟ ์ ์๋ ๊ธ์์ ๊ฐ์๊ฐ k์ ๋ชป๋ฏธ์น๋ค๋ฉด
25+ # start๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ์นธ ๋น๊ธด๋ค
26+ if end - start + 1 - max_cnt > k :
27+ dic [s [start ]] -= 1
28+ start += 1
29+ max_len = max (max_len , end - start + 1 )
30+ return max_len
Original file line number Diff line number Diff line change 1+ '''
2+ TC : O(logn)
3+ ๋นํธ์ฐ์ฐ์ด n์ 2๋ก ๋๋๋ ๊ฒ๊ณผ ๊ฐ์ผ๋ฏ๋ก ๋ก๊ทธ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค
4+ SC : O(1)
5+ '''
6+ class Solution :
7+ def hammingWeight (self , n : int ) -> int :
8+ cnt = 0
9+ while n != 0 :
10+ if n & 1 == 1 :
11+ cnt += 1
12+ n >>= 1
13+ return cnt
Original file line number Diff line number Diff line change 1+ '''
2+ TC : O(1)
3+ ์ต๋ 32๋ฒ ๋ฐ๋ณต
4+ SC : O(1)
5+ '''
6+ class Solution :
7+ def getSum (self , a : int , b : int ) -> int :
8+ # 32๋นํธ ์ ์ ์ฐ์ฐ์ ์ํ ๋ง์คํฌ ๋นํธ ์ค์
9+ mask = 0xFFFFFFFF
10+ while b & mask :
11+ tmp = a
12+ a = a ^ b
13+ b = (tmp & b ) << 1
14+ if b > 0 : # ์ฐ์ฐ๊ฒฐ๊ณผ 32๋นํธ๋ฅผ ๋ฒ์ด๋ ๊ฒฝ์ฐ a์ 32๋นํธ๊น์ง ๋ฐํ
15+ return a & mask
16+ else : # 32๋นํธ ์์์ ์ฐ์ฐ์ด ๋๋ฌ๋ค๋ฉด ๋ง์คํฌํ ํ์ ์์
17+ return a
You canโt perform that action at this time.
0 commit comments