https://programmers.co.kr/learn/courses/30/lessons/43164?language=javascript#
코딩테스트 연습 - 여행경로
[["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"]
programmers.co.kr
function solution(tickets) {
var answer = [];
let visited= ['ICN'];
dfs('ICN', tickets, visited);
return answer.sort()[0];
function dfs(cur,left,visited){
if(left.length==0){
answer.push(visited);
return;
}else{
left.map((item,i)=>{
const [from,to] = item;
if(from==cur){
let copied = [...left.slice(0,i), ...left.slice(i+1)];
dfs(to,copied , [...visited, to]);
}
})
}
}
}
1. DFS를 순환하며 현재 위치와 동일한 것을 찾는다.
2. 동일한 현 위치라면 경로에 목적지를 추가하고 DFS를 돌린다.
3. 모든 공항을 순회했으면 answer 배열에 추가한다.
4. 알파벳순으로 정렬하여 가장 작은 값을 리턴함
'Algorithm > PGMS' 카테고리의 다른 글
| PGMS - k진수에서 소수 개수 구하기 (0) | 2022.01.20 |
|---|---|
| PGMS - 모음 사전 (0) | 2022.01.17 |
| PGMS - 아이템줍기 (0) | 2022.01.17 |
| PGMS - 피로도 (0) | 2022.01.14 |
| PGMS - 소수찾기 (0) | 2022.01.13 |
