|
6 | 6 | 4. word length is between 1 and 15 inclusive |
7 | 7 | 5. board and word contain only lowercase and uppercase English letters |
8 | 8 |
|
9 | | -Time Complexity: O(N * 3^L) |
| 9 | +Time Complexity: O(N * 4^L) |
10 | 10 | - N์ board์ ๋ชจ๋ cell (m * n) |
11 | 11 | - L์ word์ ๊ธธ์ด |
12 | | - - ๊ฐ cell์์ ์์ํ์ฌ word์ ๊ฐ ๊ธ์๋ง๋ค ์ธ๋ฐฉํฅ์ผ๋ก ํ์ (์ด๋ฏธ ๋ฐฉ๋ฌธํ ๋ฐฉํฅ ์ ์ธ) |
| 12 | + - ๊ฐ cell์์ ์์ํ์ฌ word์ ๊ฐ ๊ธ์๋ง๋ค ๋ค๋ฐฉํฅ์ผ๋ก ํ์ (์ด๋ฏธ ๋ฐฉ๋ฌธํ ๋ฐฉํฅ ์ ์ธ) |
13 | 13 |
|
14 | 14 | Space Complexity: O(L) |
15 | 15 | - L์ word์ ๊ธธ์ด๋ก, ์ฌ๊ท ํธ์ถ ์คํ์ ๊น์ด |
16 | | -
|
17 | | -To Do: |
18 | | - - DFS์ ๋ฐฑํธ๋ํน ๊ฐ๋
๋ณต์ตํ๊ธฐ |
19 | | - - ๋ค๋ฅธ ์คํฐ๋์๋ถ๋ค์ ๋ต์ ์ฐธ์กฐํ์ฌ ๋ค๋ฅธ ํ์ด๋ฐฉ๋ฒ ๋ณต์ตํ๊ธฐ |
20 | 16 | """ |
21 | 17 |
|
22 | 18 | class Solution: |
23 | 19 | def exist(self, board: List[List[str]], word: str) -> bool: |
24 | 20 | rows, cols = len(board), len(board[0]) |
25 | 21 |
|
26 | 22 | def dfs(i, j, k): |
| 23 | + |
| 24 | + # ๋จ์ด๋ฅผ ๋ชจ๋ ์ฐพ์์ผ๋ฉด True ๋ฐํ |
27 | 25 | if k == len(word): |
28 | 26 | return True |
29 | 27 |
|
30 | | - if (i < 0 or i >= rows or |
| 28 | + if (i < 0 or i >= rows or # ๊ฒฝ๊ณ์ฒดํฌ |
31 | 29 | j < 0 or j >= cols or |
32 | | - board[i][j] != word[k]): |
| 30 | + board[i][j] != word[k]): # ํ์ฌ ๋ฌธ์๊ฐ ์ฐพ๋ ๋ฌธ์์ ๋ค๋ฆ |
33 | 31 | return False |
34 | 32 |
|
35 | | - temp = board[i][j] |
36 | | - board[i][j] = '#' |
| 33 | + temp = board[i][j] # ํ์ฌ ๋ฌธ์๋ฅผ ์์์ ์ฅ |
| 34 | + board[i][j] = '#' # ๋ฐฉ๋ฌธ ํ์ |
37 | 35 |
|
38 | | - result = (dfs(i+1, j, k+1) or |
| 36 | + result = (dfs(i+1, j, k+1) or # ์ํ์ข์ฐ ๋ค ๋ฐฉํฅ ํ์ |
39 | 37 | dfs(i-1, j, k+1) or |
40 | 38 | dfs(i, j+1, k+1) or |
41 | 39 | dfs(i, j-1, k+1)) |
42 | 40 |
|
43 | | - board[i][j] = temp |
| 41 | + board[i][j] = temp # ๋ฐฑํธ๋ํน (์๋ ๋ฌธ์๋ก ๋ณต์) |
44 | 42 | return result |
45 | 43 |
|
46 | 44 | for i in range(rows): |
|
0 commit comments