-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathLv3_단어변환.py
48 lines (40 loc) · 1.13 KB
/
Lv3_단어변환.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
answer = 999999999
check = []
def DFS(cur, target, cnt, words):
global answer
global check
if cur == target:
if answer > cnt:
answer = cnt
return
for i in range(len(words)):
if check[i]: # ?대? ?ъ슜???⑥뼱?쇰㈃ ?⑥뒪
continue
diff = 0
for j in range(len(cur)):
if cur[j] != words[i][j]:
diff += 1
if diff != 1: # ?ㅻⅨ 湲?먭? 1媛쒓? ?꾨땲硫??⑥뒪
continue
check[i] = True
DFS(words[i], target, cnt + 1, words)
check[i] = False
def solution(begin, target, words):
global answer
global check
check = [False]*len(words)
for i in range(len(words)):
diff = 0
for j in range(len(begin)):
if begin[j] != words[i][j]:
diff += 1
if diff != 1:
continue
check[i] = True
DFS(words[i], target, 1, words)
check[i] = False
if answer == 999999999:
return 0
else:
return answer
print(solution("hit", "cog", ["hot", "dot", "dog", "lot", "log"])) # 0