https://school.programmers.co.kr/learn/courses/30/lessons/43163?language=python3
프로그램 제작자
코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.
Programmer.co.kr
첫 번째 솔루션
deque를 사용한 너비 우선 탐색
from collections import deque
def solution(begin, target, words):
    answer = 0
    visited=(0 for _ in range(len(words)))
    q=deque()
    q.append(begin)
    while q:
        word=q.popleft()
        if word==target:
            answer=visited(words.index(target))
            break
        for i in range(len(words)):
            if visited(i)==0:
                check=0
                for j in range(len(word)):
                    if words(i)(j)!=word(j):
                        check+=1
                if check==1:
                    if word==begin:
                        visited(i)=1
                    else:
                        visited(i)=visited(words.index(word))+1
                    q.append(words(i))
    return answer
더 나은 대답
하나. 대상이 단어 목록에 없으면 검색을 계속할 필요가 없으므로 위의 슬라이스 코드를 추가했습니다.
from collections import deque
def solution(begin, target, words):
    answer = 0
    if target not in words:
        return answer
    visited=(0 for _ in range(len(words)))
    q=deque()
    q.append(begin)
    while q:
        word=q.popleft()
        if word==target:
            answer=visited(words.index(target))
            break
        for i in range(len(words)):
            if visited(i)==0:
                check=0
                for j in range(len(word)):
                    if words(i)(j)!=word(j):
                        check+=1
                if check==1:
                    if word==begin:
                        visited(i)=1
                    else:
                        visited(i)=visited(words.index(word))+1
                    q.append(words(i))
    return answer
배우다
하나. 검색 알고리즘을 배웠지만 적용할 수 있었습니다.
2. 검색이 어려운 경우 전체를 검색하면서 위에서 조건을 잘라내어 시간을 절약할 수 있습니다.