나의 개발일지

[프로그래머스] Lv.3 단어 변환 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.3 단어 변환 [Python, 파이썬]

YoonJuHan 2023. 6. 5. 18:57
from collections import deque

def solution(begin, target, words):
    answer = 0
    q = deque()
    q.append([begin, 0])    # 시작 단어와 깊이
    V = [ 0 for i in range(len(words))] # 방문 배열

    while q:
        word, cnt = q.popleft()
        if word == target:  # 타겟과 같은 단어면 멈춤
            answer = cnt
            break

        for i in range(len(words)):
            temp_cnt = 0
            if V[i] == 0:   # 방문 안한 단어면
                for j in range(len(word)):  # 현재 단어의 길이만큼 반복
                    if word[j] != words[i][j]:  # 글자가 다르면
                        temp_cnt += 1   # +1
                if temp_cnt == 1:   # 반복 후 다른 글자가 하나면
                    q.append([words[i], cnt+1]) # 큐에 넣고 깊이 + 1
                    V[i] = 1    # 방문 체크
                    
    return answer
Comments