Skip to content

Commit 2e423e4

Browse files
committed
feat: Solve word-break problem
1 parent 93d393f commit 2e423e4

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

โ€Žword-break/hu6r1s.javaโ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import java.util.*;
2+
3+
class Solution {
4+
public boolean wordBreak(String s, List<String> wordDict) {
5+
Set<String> wordSet = new HashSet<>(wordDict);
6+
boolean[] dp = new boolean[s.length() + 1];
7+
dp[0] = true;
8+
9+
for (int i = 1; i < s.length() + 1; i++) {
10+
for (int j = 0; j < i; j++) {
11+
if (dp[j] && (wordSet.contains(s.substring(j, i)))) {
12+
dp[i] = true;
13+
break;
14+
}
15+
}
16+
}
17+
return dp[s.length()];
18+
}
19+
}

โ€Žword-break/hu6r1s.pyโ€Ž

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
3+
word_set = set(wordDict) # O(1) ์กฐํšŒ๋ฅผ ์œ„ํ•ด set์œผ๋กœ ๋ณ€ํ™˜
4+
n = len(s)
5+
dp = [False] * (n + 1)
6+
dp[0] = True # ๊ณต์ง‘ํ•ฉ์€ ํ•ญ์ƒ ๊ฐ€๋Šฅ
7+
8+
for i in range(1, n + 1):
9+
for j in range(i):
10+
if dp[j] and s[j:i] in word_set:
11+
dp[i] = True
12+
break # i๋ฒˆ์งธ๊นŒ์ง€ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉด ๋” ํ™•์ธํ•  ํ•„์š” ์—†์Œ
13+
14+
return dp[-1]

0 commit comments

Comments
ย (0)