단어 변환
개요
- 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
Programmers
에 공개된 예제이며 링크는 아래와 같습니다.
코드
from collections import deque
def compare(word, c_word):
mismatch = 0
for idx in range(len(word)):
if word[idx] != c_word[idx]:
mismatch += 1
if mismatch == 1:
return True
else:
return False
def bfs(begin, target, words):
queue = deque()
queue.append((begin, 0))
visited = []
while queue:
current = queue.popleft()
if current[0] == target:
return current[1]
if current[0] not in visited:
visited.append(current[0])
for word in words:
if compare(current[0], word):
queue.append((word, current[1]+1))
return 0
def solution(begin, target, words):
answer = bfs(begin, target, words)
return answer
마치며
이번 포스팅은 Programmers
에 존재하는 파이썬 코딩테스트 깊이/너비 우선 탐색(DFS/BFS) 예제 중 레벨 3에 해당하는 문제입니다.