[3級]旅行コース


🛠 質問する


https://programmers.co.kr/learn/courses/30/lessons/43164

👩🏻‍💻 解決策


air dickshernerの逆順序ソートはスタックを使用するために必要です
そこで,最後に正解リストを反転()し,元の順序で出力する.
ソースコード
def solution(tickets):
    answer = []
    air = {}
    for t in tickets:
        if t[0] not in air.keys():
            air[t[0]] = [t[1]]
        else:
            air[t[0]] += [t[1]]
    for k in air:
        air[k].sort(reverse = True)
    
    stack = ['ICN']
    while stack:
        i = stack[-1]
        if i not in air or len(air[i]) == 0:
            answer.append(stack.pop())
        else:
            stack.append(air[i].pop())
            
    answer.reverse()
    return answer