말랑한 하루
[Programmers] 단어 변환 (Lv 3, JavaScript) 본문
반응형
[ 개요 ]
브루트포스
[ 소스 코드 ]
function solution(begin, target, words) {
const INT_MAX = 2147483647;
let answer = INT_MAX;
words.unshift(begin);
let visit = new Array(words.length).fill(INT_MAX);
if (!words.includes(target)) return 0;
const checkWord = (o1, o2) => {
return o1.filter((o, idx) => o != o2[idx]).length == 1 ? 1 : 0;
}
const changeWord = (prev, cnt) => {
if (words[prev] === target) {
answer = answer < cnt ? answer : cnt;
return;
}
for(let i=1; i<words.length; i++) {
if (i === prev) continue;
if (visit[i] > cnt + 1 &&
checkWord(words[prev].split(""), words[i].split(""))) {
visit[i] = cnt + 1;
changeWord(i, cnt + 1);
}
}
}
changeWord(0, 0);
return answer;
}
[ 코드 분석 ]
DFS를 단어배열의 index를 초점으로 진행하여 첫 begin단어를 words배열에 추가해야 했다.
target value가 없는 경우를 위해 includes를 통해 예외처리를 진행했고
매번 모든 단어를 확인하므로, 다익스트라를 살짝 인용하였다.
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Programmers] 숫자 게임 (Lv 3, JavaScript) (0) | 2022.12.10 |
---|---|
[Programmers] 최고의 집합 (Lv 3, JavaScript) (0) | 2022.12.09 |
[Programmers] 야근 지수 (Lv 3, JavaScript) (0) | 2022.12.08 |
[Programmers] 기지국 설치 (Lv 3, JavaScript) (0) | 2022.12.08 |
[Programmers] 이중우선순위큐(Lv 3, JavaScript) (0) | 2022.12.05 |
Comments