728x90
function solution(tickets) {
var answer = [];
let len = tickets.length
// 알파벳순서
tickets.sort()
// 방문
let visited = Array(len).fill(false)
const dfs = (now,count,route) => {
if(count === len){
answer.push(route)
return
}
for(let i=0;i<len;i++){
if(!visited[i] && now === tickets[i][0]){
visited[i] = true
dfs(tickets[i][1],count+1,route+" "+tickets[i][1])
visited[i] = false
}
}
}
dfs("ICN",0,"ICN")
return answer[0].split(' ');
}
풀이 및 회고
일단 알파벳 순으로 이동하기 때문에 정렬을 해줬습니다.
그리고 방문 배열을 만들었습니다.
DFS 함수를 만들어 방문하지 않고 출발지가 같은 티켓이면 방문을 하도록 했습니다.
728x90