
😎풀이
- 간선 생성
- 간선 연결
- 도착지를 사전 기준 오름차 순 정렬
- 깊이 우선탐색
4-1. 도착지 중 사전 순 빠른 공항을 우선 적으로 탐색
4-2. 탐색 종료 후 result
에 추가
- 추가된
result
를 역순으로 반환(JKF
공항부터 시작되도록)
function findItinerary(tickets: string[][]): string[] {
const graph = new Map<string, string[]>()
for(const [from, to] of tickets) {
if(!graph.has(from)) graph.set(from, [])
graph.get(from).push(to)
}
for(const [key, value] of graph) value.sort()
const result = []
function dfs(target: string) {
const airport = graph.get(target)
while(airport && airport.length) dfs(airport.shift())
result.push(target)
}
dfs("JFK")
return result.reverse()
};