Skip to content

Commit 37b3797

Browse files
committed
word-search solution
1 parent 3da533f commit 37b3797

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

word-search/yyyyyyyyyKim.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution:
2+
def exist(self, board: List[List[str]], word: str) -> bool:
3+
4+
# 백트래킹, DFS, 재귀
5+
def dfs(x, y, idx):
6+
# 모든 글자를 다 찾았다면 True 리턴해서 종료
7+
if idx == len(word):
8+
return True
9+
10+
# 범위벗어나거나, 다른글자라면 False 리턴해서 종료(pruning가지치기)
11+
if x < 0 or y < 0 or x >= len(board) or y >= len(board[0]) or board[x][y] != word[idx]:
12+
return False
13+
14+
t = board[x][y] # 현재값 t에 임시저장
15+
board[x][y] = ' ' # 방문표시
16+
17+
# 모든 방향(상하좌우) 탐색
18+
for i, j in [(-1,0), (1,0), (0,-1), (0,1)]:
19+
if dfs(x+i, y+j, idx+1):
20+
return True
21+
22+
board[x][y] = t # 방문복원
23+
24+
return False
25+
26+
27+
for i in range(len(board)):
28+
for j in range(len(board[0])):
29+
if dfs(i, j, 0):
30+
return True
31+
32+
return False

0 commit comments

Comments
 (0)