본문으로 바로가기

PGMS - 여행경로

category Algorithm/PGMS 2022. 1. 20. 23:03

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