여행경로

단지·2023년 5월 8일
0
post-thumbnail
from collections import deque

def solution(tickets):
    answer = []
    answer.append("ICN")
    >>> 처음 시작은 무조건 ICN
    
    tickets = sorted(tickets, key=lambda x:x[1])
	>>> 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 리턴하기위해
    
    q = deque()
    for i in tickets:
        if i[0] == "ICN": >>> 출발지가 ICN인 첫 여행지 고르기
            q.append(i) >>> q에 넣고
            break

    while q: >>> 큐에 요소가 있는 동안
        start, end = q.pop() >>> 큐에서 뽑기

        for i in tickets: >>> 티켓들을 순회하면서
            if i[0] == end: >>> 시작이 지금있는(도착지)인지 확인
                if i not in q: >>> 큐에 없으면
                    q.append(i) >>> 추가하고
                    answer.append(i[0]) >>> 방문했다고 넣어주기
                    
    return answer

직전 문제는 비슷하게 풀어서 성공했어서 비슷하게 도전해봤지만 무한루프의 굴레에 빠진 내 bfs 코드~~~
방문처리를 하지 않았고.. 이 방법으로는 전체 티켓을 모두 소모할 수 있는 방법이 없는 것 같다.. 끼워맞출수 있을 법도 한데 그건 올바른 길이 아닌 것 같으므로 ㅍ-ㅍ
dfs로 다시 풀어볼 예정.

profile
'-'b

0개의 댓글