ch배열을 버텍스값으로 체크해야된다는거..
강의에서 알려주지만 혼자서 할때는
깨닫기까지 시간이 좀 걸리네요 생각보다 만만치않음
pop도 깨닫는게 시간이 좀 걸렷는데
그치만 넘 잼잇네요 레벨업 하는 느낌 고고고
function solution(n,arr) {
let answer=[];
let graph=Array.from(Array(n),() => []);
let ch=Array.from(Array(n+1),() => 0);
let path=[];
for(let i=0; i<arr.length; ++i) {
for(let j=0; j<arr.length; ++j) {
if(i+1===arr[j][0])
graph[i].push(arr[j][1]);
}
}
function DFS(L,v) {
if(v===n)
answer.push(Array.from(path));
else {
for(let i=1; i<=graph[v-1].length; ++i) {
if(ch[v]===0) {
ch[v]=1;
path.push(graph[v-1][i-1]);
DFS(L+1,graph[v-1][i-1]);
ch[v]=0;
path.pop();
}
}
}
}
ch[0] = 1;
path[0] = 1;
DFS(0,1);
return answer;
}
let arr=[[1,2],[1,3],[1,4],[2,1],[2,3],[2,5],[3,4],[4,2],[4,5]];
console.log(solution(5,arr));