words 리스트 크기 만큼 visit 리스트를 만들어 주고, bfs 함수 안에서 target을 찾을 때까지 글자수 차이가 1씩 나는 word를 방문처리 해주고 answer+1씩 해주었다
소스 코드
answer = 0
def bfs(begin, target, words, visit):
global answer
q = [begin]
while q:
now = q.pop()
if now == target:
return answer
for w in range(len(words)):
if len([i for i in range(len(words[w])) if now[i]!=words[w][i]]) == 1:
if visit[w] == 0:
visit[w] = 1
q.append(words[w])
answer += 1
def solution(begin, target, words):
global answer
if target not in words:
return 0
visit = [0] * len(words)
bfs(begin, target, words, visit)
return answer