Skip to content

Commit 6f9ddfd

Browse files
committed
complete
1 parent be0b17e commit 6f9ddfd

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

word-break/pmjuu.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""
2+
시간 복잡도:
3+
- 외부 루프는 O(n), 내부 루프는 최악의 경우 각 i에 대해 O(n)만큼 실행됩니다. (n: 문자열 s의 길이)
4+
- s[j:i]를 wordSet에서 찾는 작업은 O(1)입니다 (set 사용).
5+
- 전체 시간 복잡도: O(n^2).
6+
7+
공간 복잡도:
8+
- DP 배열은 O(n)의 공간을 차지합니다.
9+
- wordSet은 wordDict에 있는 모든 문자의 총 길이를 기준으로 O(m)의 공간을 차지합니다. (m: wordDict의 단어 수)
10+
- 전체 공간 복잡도: O(n + m).
11+
"""
12+
13+
from typing import List
14+
15+
16+
class Solution:
17+
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
18+
wordSet = set(wordDict)
19+
n = len(s)
20+
21+
dp = [False] * (n + 1)
22+
dp[0] = True
23+
24+
for i in range(1, n + 1):
25+
for j in range(i):
26+
if dp[j] and s[j:i] in wordSet:
27+
dp[i] = True
28+
break
29+
30+
return dp[n]

0 commit comments

Comments
 (0)