プログラマ#10


DFS/BFS-トラベルパス

function solution(tickets) {
    const list = {};
    const path = ["ICN"];
    
    tickets.sort();
    
    for (let [from, to] of tickets){
        if(!list[from]) list[from] = [to];
        else list[from].push(to);
    }
    
    // for (let from in list){
    //     if(list[from].length !== 1) list[from].sort();
    // }
    
    const queue = [];
    const enqueue = (el) => queue.push(el);
    const dequeue = () => queue.shift();
    
    enqueue(list["ICN"].shift());
    
    while(queue.length > 0){
        const from = dequeue();
        
        path.push(from);
        
        
        if(!list[from] || list[from].length === 0) break;
        
        enqueue(list[from].shift());
    }
    
    return path;
}

未通過症例の入力値が分からないため,正確さがどのように間違っているかは不明である.
おそらく順番が間違っている
より多くのテストケースが必要だと思います.
あるいはDFSで解読します.