Skip to content

Commit 0f2d953

Browse files
committed
add solution : 139. Word Break
1 parent c9e39db commit 0f2d953

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

โ€Žword-break/mmyeon.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// "leetcode"
2+
// [ true, false, false, false, true, false, false, false, true ]
3+
/**
4+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• : DP ๋ฐ”ํ…€์—… ๋ฐฉ์‹
5+
* - ๋ฌธ์ž์—ด ๋Š˜๋ ค๊ฐ€๋ฉด์„œ, ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์— wordDict์— ํฌํ•จ๋˜๋Š”์ง€ ์ฒดํฌ
6+
*
7+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(n^2)
8+
* - n์€ ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด
9+
* - ์™ธ๋ถ€ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋ฌธ์ž์—ด ์ˆœํšŒ(n๋ฒˆ), ๋‚ด๋ถ€ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์ตœ๋Œ€ n๋ฒˆ ์ˆœํšŒ
10+
*
11+
* ๊ณต๊ฐ„๋ณต์žก๋„ : O(n)
12+
* - ๋ฌธ์ž์—ด ๊ธธ์ด n๋งŒํผ dp ๋ฐฐ์—ด ์ €์žฅ
13+
*/
14+
function wordBreak(s: string, wordDict: string[]): boolean {
15+
const set = new Set(wordDict);
16+
const dp = Array(s.length + 1).fill(false);
17+
// ๋นˆ ๋ฌธ์ž์—ด์€ ํ•ญ์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ true
18+
dp[0] = true;
19+
20+
// i๋Š” ๋ฌธ์ž์—ด์˜ ๋ ์ธ๋ฑ์Šค
21+
for (let i = 1; i <= s.length; i++) {
22+
// j๋Š” ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค
23+
for (let j = 0; j < i; j++) {
24+
if (dp[j] && set.has(s.substring(j, i))) {
25+
dp[i] = true;
26+
break;
27+
}
28+
}
29+
}
30+
31+
return dp[s.length];
32+
}

0 commit comments

Comments
ย (0)