문제
https://programmers.co.kr/learn/courses/30/lessons/43163?language=python3
코딩테스트 연습 - 단어 변환
두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수
programmers.co.kr
코드
from collections import deque
def solution(begin, target, words):
queue=deque()
temp=[]
for i in words:
temp.append([n for n in i])
begin=[n for n in begin]
target=[n for n in target]
if not target in temp:
return 0
queue.append(begin)
visited=[0]*(len(words)+1)
temp.append(begin)
while queue:
x=queue.popleft()
if target == x:
break
for i in temp:
count=0
for j in range(len(i)):
if x[j]==i[j]:
count+=1
if count==len(i)-1:
if visited[temp.index(i)]==0:
visited[temp.index(i)]=visited[temp.index(x)]+1
queue.append(i)
return visited[temp.index(target)]
'문제풀이 > DFS & BFS' 카테고리의 다른 글
[파이썬] [BFS] Pro 경주로 건설 (0) | 2022.02.23 |
---|---|
[파이썬] [DFS] Pro 여행경로 (0) | 2022.02.19 |
[파이썬] [DFS] 백준 3109 빵집 (0) | 2022.02.13 |
[파이썬] [BFS] 백준 6087 레이저통신 (0) | 2022.02.07 |
[파이썬] [BFS] 백준 14502 연구소 (0) | 2022.01.16 |