[프로그래머스 Lv.3] 깊이/너비 우선 탐색(DFS/BFS) - 단어 변환

김민지·2024년 1월 7일
0

✨ 문제 ✨

✨ 정답 ✨

function solution(begin, target, words){
    let count=0;
    // visited에 방문한 단어는 다 넣기 방문 여부는 includes로 판단
    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<currentWord.length;j++){
                    if (currentWord[j]!==words[i][j]){
                        different+=1;
                    }
                }
                if (different===1){
                    count+=1;
                    queue.push([words[i], count]);
                    visited.push(words[i]);
                }
            }
        }
    }else{
        return count;
    }
}

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보