카테고리 없음
[프로그래머스]단어변환
soduddl1
2022. 7. 9. 20:27
BFS
from collections import deque
def solution(begin, target, words):
answer = 0
q = deque()
visited = [0 for i in range(len(words))]
q.append([begin,0])
while q:
word, cnt = q.popleft()
if word == target:
return cnt
for i in range(len(words)):
if not visited[i]:
ch = 0
for j in range(len(word)):
if word[j] != words[i][j]:
ch +=1
if ch == 1:
q.append([words[i],cnt+1])
return answer
문제가 발생한 점
처음에 visited 를 체크하지 않아서 시간 초과 발생
> 한번 방문한 words 를 체크하지 않도록 해줘야 한다 : 최소값을 탐색하기 때문
어려웠던 점
문자열이 하나만 제외하고 모두 같은 경우를 어떻게 해야할지 감이 안왔음
모든 문자열의 갯수가 같다는 점을 이용하여 count 해서 다른 문자의 갯수가 1인 경우로 체크함