https://programmers.co.kr/learn/courses/30/lessons/43164
파이썬의 dictionary를 이용
ICN - SFO, ATL
SFO - ICN
일 경우도 생각해서 코드를 짜야한다
def solution(tickets):
routes = {}
for i in tickets:
routes[i[0]] = routes.get(i[0], []) + [i[1]]
for j in routes:
routes[j].sort(reverse=True)
stack = ["ICN"]
answer = []
while len(stack) > 0:
top = stack[-1]
if top not in routes or len(routes[top]) == 0:
answer.append(stack.pop())
else:
stack.append(routes[top][-1])
routes[top] = routes[top][:-1]
return answer[::-1]
딕셔너리 value값을 배열로 하면 값추가를 쉽게 할수있다
return answer[::-1] # 배열을 거꾸로 리턴
'알고리즘 > 프로그래머스(Python)' 카테고리의 다른 글
[알고리즘] 프로그래머스 실패율 / python (0) | 2020.03.18 |
---|---|
[알고리즘] 프로그래머스 오픈채팅방 / python (0) | 2020.03.16 |
[알고리즘] 프로그래머스 N으로 표현 / python (0) | 2020.02.20 |
[알고리즘] 프로그래머스 더 맵게 / python (0) | 2020.02.18 |
[알고리즘] 프로그래머스 큰 수 만들기 / python (0) | 2020.02.16 |