[プログラマー]旅行ルート/43614号/Python/PSN/DFS

1253 ワード

💡質問する
与えられたすべての航空券を利用して旅行ルートを作りたいです.いつもICN空港から
航空券情報を含む2次元配列航空券をパラメータとして指定する場合は、アクセスした空港経路をレイアウトに入れて返します.
せいげんじょうけん
  • すべての空港はアルファベットの大文字の3文字で構成されています.
  • 所定の空港数は3つ以上10000個以下である.
  • 切符の各行[a,b]は、a空港からb空港までの航空券があることを示す.
  • の航空券はすべて使用します.
  • 可能なパスが2つ以上ある場合は、アルファベット順にリードするパスを返します.
  • すべての都市へのアクセスは許可されていません.
  • にゅうしゅつりょく
    ticketsreturn[[ICN, JFK], [HND, IAD], [JFK, HND]][ICN, JFK, HND, IAD][[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]][ICN, ATL, ICN, SFO, ATL, SFO]
    📖私が書いたコード
    def solution(tickets):
        res = []
        answer=[]
        def DFS(start,ticket_list,res):
            res.append(start)
            if len(ticket_list)==1:
                res.append(ticket_list[0][1])
                answer.append(res)
            else:
                for t in ticket_list:
                    if start==t[0]:
                        copy_tList=ticket_list.copy()
                        copy_tList.remove(t)
                        DFS(t[1],copy_tList,res.copy())
        DFS('ICN',tickets,res)       
        return min(answer)
    質問元:https://programmers.co.kr/learn/courses/30/lessons/43164