티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/43163

 

코딩테스트 연습 - 단어 변환

두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수

programmers.co.kr

 

def solution(begin, target, words):
    
    if target not in words:
        return 0
    
    answer = 0
    start = [begin]

    while(len(words) != 0):
        for s in start:
            tmp = []
            for word in words:
                cnt = 0
                for i in range(len(word)):
                    if s[i] != word[i]:
                        cnt += 1
                    if cnt == 2:
                        break
                if cnt == 1:
                    tmp.append(word)
                    words.remove(word)
        answer += 1
        if target == "".join(tmp):
            break
        else:
            start = tmp
    return answer

 

공지사항
최근에 올라온 글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함