한 글자씩 바꿔 가는 단어 사다리

레벨 L3 · 코딩 · JavaScript · 목표 시간 11분 · 게시일 2026-10-17

길이가 같은 소문자 단어 begin, end와 단어 목록 words가 주어진다. 단어는 한 번에 한 글자만 바꿀 수 있고, 바꾼 결과는 반드시 words에 있는 단어여야 한다. begin을 end로 만드는 데 필요한 최소 횟수를 구하시오. 만들 수 없으면 -1이고, begin과 end가 같으면 0이다. begin은 words에 없어도 된다.

words는 최대 20,000개이고 모든 단어의 길이는 begin과 같으며 1 이상 8 이하이다. 단어를 꺼낼 때마다 목록 전체와 비교하는 방법으로는 시간 안에 끝나지 않는다.

예제

solve("hit", "cog", ["hot","dot","dog","lot","log","cog"])
solve("hit", "cog", ["hot","dot","dog","lot","log"])
solve("abc", "abc", [])

L3 레벨의 다른 문제 · 코딩 문제 목록