[Level3] 단어 변환

Quesuemon·2021년 3월 30일
0

코딩테스트 준비

목록 보기
44/111

🛠 문제

https://programmers.co.kr/learn/courses/30/lessons/43163


👩🏻‍💻 해결 방법

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

0개의 댓글