반응형
다익스트라로 접근하면 편하다.
const INF = 987654321;
function solution(strs, t) {
const n = t.length;
var digit = Array.from({length: n},() => INF);
const q = [];
q.push([-1,0]);
while(!(q.length === 0)) {
const [index, count] = q.shift();
for(let str of strs) {
let len = str.length;
if(index + 1 + len > n ) {
continue;
}
const subStr = t.substring(index + 1 ,index + 1 + len);
if(str === subStr && digit[index + len] > count + 1) {
digit[index + len] = count + 1;
q.push([index + len, count + 1]);
}
}
}
if(digit[t.length - 1] === INF)
return -1;
return digit[t.length - 1];
}
var ret =solution(["app","ap","p","l","e","ple","pp"],"apple");
console.log(ret);
반응형
'ProgramSoliving' 카테고리의 다른 글
프로그래머스 : 가사검색 JavsScript (0) | 2021.07.01 |
---|---|
프로그래머스 : 무지의 먹방 라이브 JavaScript (1) | 2021.06.30 |
프로그래머스 : 트리 트리오 중간값 javascript (0) | 2021.06.26 |
프로그래머스 : 줄서는방법 JavaScript (0) | 2021.06.24 |
프로그래머스 : 단어 변환 JavaScript (0) | 2021.06.22 |