[レベル3]ワード変換


🛠 質問する
https://programmers.co.kr/learn/courses/30/lessons/43163
👩🏻‍💻 解決策
単語リストサイズに従ってアクセスリストを作成し、bfs関数でtargetが見つかるまで、文字数が1の異なる単語にアクセスし、+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