Menu
CoddyTech

Word Ladder

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

beginWord와 endWord라는 두 단어와 단어 목록 wordList가 주어집니다. 사다리는 beginWord로 시작하고 endWord로 끝나며, 각 단어에서 다음 단어로 갈 때 정확히 한 글자만 바뀌는 단어의 연속입니다. beginWord 이후의 모든 단어는 wordList에 포함되어야 합니다.

양쪽 끝 단어를 모두 포함해 가장 짧은 사다리를 이루는 단어의 개수를 반환하고, 사다리가 없으면 0을 반환합니다. 예를 들어, cold, cord, card는 단어 3개로 이루어진 사다리입니다. beginWord는 wordList에 없어도 되지만, endWord는 있어야 합니다.

함수

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도 lead와 한 글자만 다르지만, 둘 다 새로운 곳으로 이어지지 않으며 bold는 gold에서만 도달할 수 있습니다.

lock icon제출 시 숨은 테스트 +14개

challenge icon

후속 질문

길이만이 아니라, 최단 단어 사다리 하나를 단어 순서대로 반환할 수 있나요?

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

케이스 1

케이스 2

케이스 3

입력

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

기대값

4