여행경로
개요
- 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
Programmers
에 공개된 예제이며 링크는 아래와 같습니다.
코드
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에 해당하는 문제입니다.