고득점 Kit [DFS/BFS] - 여행경로

세나정·2023년 5월 13일
0

문제

function solution(tickets) {
    let answer = [];
    const stack = [];
    const visited = [];

    // 출발지건 목적지건 우선 알파벳순으로 정렬
    tickets.sort();

    const dfs = (출발지, count) => {
        // 스택에 한 개씩 넣어줌
        stack.push(출발지);
        // 비행기가 뜬 횟수와 티켓의 길이가 같은데
        // stack이 빈 배열이라면
        if (count === tickets.length) {
          answer = stack;
          return true;
        }

        for(let i = 0; i < tickets.length; i++) {
            
          if(!visited[i] && tickets[i][0] === 출발지) {
            visited[i] = true;
            
            if(dfs(tickets[i][1], count+1)) return true;

            visited[i] = false;
          }
        }

        stack.pop();

        return false;
    }

    dfs("ICN", 0);
    

    return answer;
}
profile
기록, 꺼내 쓸 수 있는 즐거움

0개의 댓글