[JS][프로그래머스 Lv3]여행경로

고병표·2021년 12월 2일
0

코딩테스트 연습

목록 보기
9/9
post-thumbnail

프로그래머스 Lv3 여행경로

* 문제설명


* 해결방법

  • 가능한 경로가 2개 이상일 경우 알파벳 순서에 따라 변경 -> sort()
  • dfs사용

* 작성코드

function solution(tickets) {
    var answer = [];
    let visited = new Array(tickets.length).fill(false);
    let queue = [];
    tickets.sort()
    let len = tickets.length;
    
    function dfs (str, count){  
        queue.push(str);
        if (count === len){
            answer = queue;
            return true;
        }        
        for ( let i = 0; i < len; i++){
            if(!visited[i] && tickets[i][0] === str){
                visited[i] = true;                
                if(dfs(tickets[i][1], count+1)) return true;                
                visited[i] = false
            }
        }
        queue.pop();
        return false;
    }
    
    dfs("ICN", 0)
    return answer;
}
}

0개의 댓글