<aside> 🔥 일정 재구성 링크

</aside>

어려운 점

<aside> 🔥 우선적으로 그래프를 생성하는부분까지는 방향은 비슷했으나, 방문처리를 하는 방법이 떠오르지 않았다.

키가 문자열이기 때문인데 이럴때 해설에서는 해당 값에서 아예 제거해주는 방법을 선택했다.

이런 접근방법은 그냥 숙달해야겠다.

</aside>

문제 정리

<aside> 🔥 입력값 tickets가 주어진다.

JFK 공항에서부터 출발해 사전식 순서로 방문하는 루트를 반환하자.

</aside>

예제로 정리

Input: tickets = [["MUC","LHR"],["JFK","MUC"],["SFO","SJC"],["LHR","SFO"]]
Output: ["JFK","MUC","LHR","SFO","SJC"]

Untitled

접근 방법

<aside> 🔥 (1) tickets를 노드와 노드를 연결하는 간선이라고 생각하고 2차원 객체를 만든다.

(2) JFK부터 방분하면서 하나씩 지워나간다.

</aside>

코드 진행

<aside> 🔥 (1) tickets를 토대로 객체 생성하기

여기서 중요한건 defaultdict로 생성하여 키값이 없어도 자동 생성될 수 있게 하여 번거로움을 없앴다.

또한, 오름차순으로 정렬해서 사전순으로 방문할 수 있게 체크한다.

</aside>

def findItinerary(self, tickets):
    graph = collections.defaultdict(list)       # defaultdict로 생성해서 키값이 없어도 자동 생성하게.
    route = []                                  # 정답 부분
    # 티켓을 오름차순으로 정렬해서 사전순으로 방문하도록
    # 그래프 그리기
    for a, b in sorted(tickets) :
        graph[a].append(b)