단어 변환 - PYTHON
문제 설명
두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.
- 한 번에 한 개의 알파벳만 바꿀 수 있습니다.
- words에 있는 단어로만 변환할 수 있습니다.
예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> cog와 같이 4단계를 거쳐 변환할 수 있습니다.
두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 return 하도록 solution 함수를 작성해주세요.
제한사항
각 단어는 알파벳 소문자로만 이루어져 있습니다.
각 단어의 길이는 3 이상 10 이하이며 모든 단어의 길이는 같습니다.
words에는 3개 이상 50개 이하의 단어가 있으며 중복되는 단어는 없습니다.
begin과 target은 같지 않습니다.
변환할 수 없는 경우에는 0를 return 합니다.
문제 풀이
먼저 문제를 살펴보면 begin의 단어에서 words에 있는 단어중 바꿀 수 있는 언어로 바꾸고 바꾼 단어에서 또 다른 언어로 바꿀 수 있는 단계로 내려가고... 그렇게 내려가다가 보면 target이 나오면 그 내려간 단계의 값을 return 하는 것으로 간단히 정리하자면,
- begin에서 words 중 한 글자만 다른 word를 찾아서 그 word로 바꿈.
- 이제 그 word에서 남은 words 중에 또 변경이 가능한 모든 경우의 수를 살펴봄.
- 바뀔 수 있는 단어 중 target이 있으면 그 까지의 level을 return.
def solution(begin, target, words):
answer = [begin]
cnt = 0
if target not in words :
return 0
while len(words) != 0 :
for i in answer:
temp = []
for word in words :
word_cnt = 0
for j in range(0,len(i)):
if i[j] != word[j] :
word_cnt +=1
if word_cnt > 1:
break;
if word_cnt == 1:
temp.append(word)
words.remove(word)
cnt +=1
if target in temp :
return cnt
else :
answer = temp
return answer
Author And Source
이 문제에 관하여(단어 변환 - PYTHON), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@j_user0719/단어-변환-PYTHON저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)