Menu
CoddyTech

Word Ladder

어려움그래프큐python iconjava iconcpp iconc iconjs icon+10

두 단어 beginWord와 endWord, 그리고 단어 목록 wordList가 주어집니다. 사다리는 beginWord로 시작하고 endWord로 끝나며, 각 단어에서 다음 단어로 넘어갈 때 정확히 한 글자만 바뀝니다. beginWord 이후의 모든 단어는 wordList에 포함되어야 하므로 endWord는 목록에 있어야 하지만, beginWord는 목록에 없어도 됩니다.

양 끝 단어를 모두 세어 가장 짧은 사다리에 포함된 단어의 개수를 반환하고, 사다리가 없으면 0을 반환합니다.

함수

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
사다리의 첫 번째 단어
endWordstring
사다리가 도달해야 하는 단어
wordListstring-array
이후의 모든 단계가 가져와야 하는 단어들
반환값integer
가장 짧은 사다리를 구성하는 단어의 수이며, 그런 사다리가 없으면 0

제약 조건

  • 1 ≤ beginWord.length ≤ 10
  • endWord와 wordList의 모든 단어는 beginWord와 길이가 같습니다.
  • 1 ≤ wordList.length ≤ 5000
  • 모든 단어는 소문자 영어 문자만 포함합니다.
  • beginWord != endWord
  • wordList에 있는 단어는 모두 서로 다릅니다. beginWord는 그중 하나일 수도 있고 아닐 수도 있습니다.

예제

입력
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
출력
4
설명
lead와 gold는 세 글자가 다르므로 단어 사다리에는 최소 4개의 단어가 필요하며, lead, load, goad, gold는 4개입니다. lend와 lewd는 막다른 길입니다.
challenge icon

후속 질문

길이 대신, 가장 짧은 사다리 하나를 단어 순서대로 반환할 수 있나요?

코드 초기화
def ladderLength(beginWord, endWord, wordList):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

beginWord = "lead"
endWord = "gold"
wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]

예상 출력

4