문제 설명


풀이 과정


1. 문자열 두개를 비교하는 함수를 하나 만들어 줌(서로 다른 문자열의 개수가 단 한개여야 함)

2. begin을 시작점으로 최단 길이의 변환 과정이므로 bfs를 돌아줌. ( 서로 다른 문자열의 개수가 단 한개이고, 방문하지 않은 문자열 )


from collections import deque

def compare(a, b):
    count = 0
    for i in range(len(a)):
        if a[i] == b[i]:
            count += 1
    
    if count == len(a)-1:
        return True
    else:
        return False
    
def solution(begin, target, words):
    answer = 0
    
    visited = set()
    queue = deque()
    queue.append([begin, 0])
    visited.add(begin)
    while queue:
        wd,count = queue.popleft()
        if wd == target:
            answer = count
            break
        for word in words:
            if not word in visited and compare(wd, word):
                queue.append([word, count+1])
                visited.add(word)

    return answer

'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글

[ Lv 3 ] 정수 삼각형  (0) 2021.07.14
[ Lv 3 ] 순위  (0) 2021.07.14
[ Lv 3 ] 디스크 컨트롤러  (0) 2021.07.13
[ Lv 3 ] 입국심사  (0) 2021.07.12
[ Lv 3 ] 가장 먼 노드  (0) 2021.07.12

+ Recent posts