[프로그래머스] 단어 변환 _ 파이썬

메링·2021년 6월 15일
0

알고리즘 문제

목록 보기
8/22

dfs, bfs 문제에 아직도 적응을 못했다...
한 번에 도움 없이 풀기가 쉽지 않다.
dfs로 풀겠다고 생각은 했는데 최단 거리를 나타내려면 어떻게 해야할지 고민하느라 코드 작성이 안됐음.
일단 dfs로 그냥 푼 방법인데 프로그래머스 채점 상 통과는 됐다. 근데 사실 이렇게 하면 최단거리라기보단 target을 찾기만 하는 방식이다. 최단거리를 찾는 정확한 방식이라고 할 수 없어서 다시 봐야할 것 같다.

풀이 (dfs - 스택 사용)

def solution(begin, target, words):
    answer = 0
    check = [True for i in range(len(words))]
    stack = [begin]
    now = ''
    
    while stack:
        now = stack.pop()
        
        if now == target:
            return answer
        
        if not target in words:
            return 0
        
        for idx in range(len(words)):
            if not check[idx]:
                continue
                
            diff = 0
            for i in range(len(now)):
                if now[i] != words[idx][i]:
                    diff += 1
            if diff == 1:
                stack.append(words[idx])
                check[idx] = False
                
        answer += 1
        
    return answer
profile
https://github.com/HeaRinKim

0개의 댓글