DFS
def solution(begin, target, words):
if target not in words :
return 0
visited = []
answer = 0
dfs_flag = True #답을 찾으면 False, 모든 DFS 종료
def dfs(begin, point):
visited.append(begin)
point += 1
#탈출 조건
cnt = 0
for i in range(len(begin)):
if begin[i] != target[i]:
cnt+=1
if cnt == 1:
nonlocal answer
answer = point
nonlocal dfs_flag
dfs_flag = False
return
#실행문
for word in words:
flag = 0
if word not in visited and dfs_flag:
for i in range(len(word)):
if begin[i] != word[i]:
flag += 1
if flag == 1 and dfs_flag:
dfs(word, point)
dfs(begin, 0)
return answer
print(solution("hit","cog",["hot", "dot", "dog", "lot", "log", "cog"]))
아직은 많이 익숙치가 않은것 같다 🥲
'알고리즘' 카테고리의 다른 글
[정렬] 프로그래머스 - H-index (0) | 2022.07.11 |
---|---|
[완전탐색] 프로그래머스 - 카펫 (0) | 2022.07.10 |
[DFS] 프로그래머스 - 네트워크 (0) | 2022.07.09 |
[DFS] 프로그래머스 - 타겟 넘버 문제 (0) | 2022.07.08 |
[DFS][BFS] DFS와 BFS 개념정리 (0) | 2022.07.08 |