function solution(begin, target, words) {
var count = 0;
let visited=[];
if (words.includes(target)){
let queue=[[begin, count]];
while(queue.length){
let [currentWord, count] = queue.shift();
if (currentWord === target) {
return count;
}
for (let i=0;i<words.length;i++){
if (visited.includes(words[i])){
continue;
}
let different=0;
for (let j=0;j<words[i].length;j++){
if (words[i][j]!==currentWord[j]){
different+=1;
}
}
if (different===1){
count+=1;
queue.push([words[i], count])
visited.push(words[i]);
}
}
}
}
return count;
}
BFS로 이런 것도 할 수 있다니 신기하다.
visited는 빈 배열에서 시작할 수도 있다.