본문 바로가기

프로그래머스

프로그래머스 LV 3 단어 변환

728x90
from collections import deque

    
def solution(begin, target, words):
    answer = 0
    q = deque()
    q.append((begin,0))
    # 단어 방문 
    visited = set()
    while q :
        w,idx = q.popleft()
        # 현재 단어랑 target 이랑 같으면 return idx 
        if w == target :
            return idx
        for word in words :
            # 방문하지 않고 한글자만 다르면 q 에 삽입
            if word not in visited and sum([w[i] != word[i] for i in range(len(word))]) == 1 :
                q.append((word,idx+1))
                visited.add(word)
        
    return answer

풀이 및 회고

1. begin 단어를 큐에 넣고 count 값을 넣어 준다.

2. q가 존재할때 까지 반복한다.

3. 현재 단어랑 target 이 같으면 return 한다.

4. words 반복을 통해 조건에 맞으면 q 에 삽입하고 방문처리를 한다.

728x90