DataScience trainee

Programmers - 여행경로

여행경로


개요

  • 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
  • Programmers 에 공개된 예제이며 링크는 아래와 같습니다.

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


코드

from collections import deque

def search(airport, tickets):
    queue = deque()

    visited = []
    max_visited = []
    used = []
    
    queue.append((airport, visited, used))
    while queue:
        current = queue.popleft()
        airport = current[0]
        visited = current[1]
        used = current[2]
        
        for index, ticket in enumerate(tickets):
            if str(index) not in used and ticket[0] == airport:
                queue.append((ticket[1],visited + [airport], used + [str(index)]))

        if len(max_visited) < len(visited + [airport]):
            max_visited = visited + [airport]
            
    return max_visited


def solution(tickets):

    tickets = sorted(tickets)
    airport = "ICN"

    answer = search(airport, tickets)
    return answer

마치며

이번 포스팅은 Programmers에 존재하는 파이썬 코딩테스트 깊이/너비 우선 탐색(DFS/BFS) 예제 중 레벨 3에 해당하는 문제입니다.