문제 설명
풀이 과정
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 |