문제
https://programmers.co.kr/learn/courses/30/lessons/43164?language=python3
코딩테스트 연습 - 여행경로
[["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"]
programmers.co.kr
코드
from collections import defaultdict
def solution(tickets):
answer = []
routes=defaultdict(list)
for ticket in tickets:
routes[ticket[0]].append(ticket[1])
for key in routes.keys():
routes[key].sort(reverse=True)
stack=["ICN"]
while stack:
temp=stack[-1]
if not routes[temp]:
answer.append(stack.pop())
else:
stack.append(routes[temp].pop())
answer.reverse()
return answer
생각 정리
routes = {
"ICN": ["SFO", "ATL"],
"SFO": ["ATL"],
"ATL": ["SFO", "ICN"]
}
temp="ICN"일 때
"ICN" dict에서 pop()
routes = {
"ICN": ["SFO"], //"ATL" 빠짐
"SFO": ["ATL"],
"ATL": ["SFO", "ICN"]
}
routes = {
"ICN": ["SFO"],
"SFO": ["ATL"],
"ATL": ["SFO"] //"ICN" 빠짐
}
routes = {
"ICN": [], //"SFO" 빠짐
"SFO": ["ATL"],
"ATL": ["SFO"]
}
'문제풀이 > DFS & BFS' 카테고리의 다른 글
[파이썬] [DFS] 백준 2667 단지번호붙이기 (0) | 2022.03.01 |
---|---|
[파이썬] [BFS] Pro 경주로 건설 (0) | 2022.02.23 |
[파이썬] [BFS] Pro 단어 변환 (0) | 2022.02.18 |
[파이썬] [DFS] 백준 3109 빵집 (0) | 2022.02.13 |
[파이썬] [BFS] 백준 6087 레이저통신 (0) | 2022.02.07 |