프로그래머스 단어변환

wook2·2021년 6월 28일
0

알고리즘

목록 보기
13/117
post-custom-banner

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

탐색에 관한 문제이다.
탐색을 하기 때문에, bfs/dfs로 풀 수 있는데 bfs로 해결해봤다.

그런데 한가지 조건을 넣어서, 하나의 문자열만 다른 문자만 append를 해주었다.

from collections import deque
def solution(begin, target, words):
    answer = 0
    visited = []
    if target not in words:
        return 0
    queue = deque([])
    queue.append((begin,0))
    while queue:
        x = queue.popleft()
        if x[0] == target:
            return x[1]
        visited.append(x)
        for i in range(len(words)):
            if check(words[i], x[0]) and words[i] not in visited:
                visited.append(words[i])
                queue.append((words[i],x[1]+1))
                
def check(begin,word):
    count = 0
    for i in range(len(begin)):
        if begin[i] == word[i]:
            count += 1
    if count == len(begin) - 1:
        return True
    else:
        return False
profile
꾸준히 공부하자
post-custom-banner

0개의 댓글