https://programmers.co.kr/learn/courses/30/lessons/43163
탐색에 관한 문제이다.
탐색을 하기 때문에, bfs/dfs로 풀 수 있는데 bfs로 해결해봤다.
그런데 한가지 조건을 넣어서, 하나의 문자열만 다른 문자만 append를 해주었다.
from collections import deque
def solution(begin, target, words):
answer = 0
visited = []
if target not in words:
return 0
queue = deque([])
queue.append((begin,0))
while queue:
x = queue.popleft()
if x[0] == target:
return x[1]
visited.append(x)
for i in range(len(words)):
if check(words[i], x[0]) and words[i] not in visited:
visited.append(words[i])
queue.append((words[i],x[1]+1))
def check(begin,word):
count = 0
for i in range(len(begin)):
if begin[i] == word[i]:
count += 1
if count == len(begin) - 1:
return True
else:
return False