백트래킹
문제를 해석했을 때 그래프가 만들어지는 것 같아서 그래프 탐색 방법을 활용하여 풀어보았습니다.
그 중 백트래킹 알고리즘을 활용하면 좋을 것 같았습니다.
주어진 항공권 수 만큼 방문 확인 배열을 만들고, 종료 변수를 항공권 갯수 +1로 선언합니다.
backTracking 함수
const solution = (tickets) => {
const answer = [];
const visited = Array(tickets.length).fill(0);
const finished = tickets.length + 1;
const backTracking = (travelPath) => {
if (travelPath.length === finished) {
answer.push(travelPath);
return;
}
tickets.forEach((ticket, i) => {
if (!visited[i]) {
const [start, end] = ticket;
if (travelPath.at(-1) === start) {
visited[i] = 1;
backTracking([...travelPath, end]);
visited[i] = 0;
}
}
});
};
backTracking(["ICN"]);
return answer.sort()[0];
};