Written by
최태열
on
on
[Python][프로그래머스][Level3] 여행경로
[Python][프로그래머스][Level3] 여행경로
코드
answer=[]
def dfs(start,check,tickets,ans):
if not 0 in check:
answer.append(ans)
return
for idx, (x, y) in enumerate(tickets):
if x==start and check[idx]==0:
check[idx]=1
dfs(y,check,tickets,ans+[y])
check[idx]=0
def solution(tickets):
dfs("ICN",[0]*len(tickets),tickets,["ICN"])
return sorted(answer)[0]
dfs로 풀었다.
모든 티켓을 다 쓰고 완주하는 경우를 모두 기록한뒤에 알파벳순으로 정렬해서 한가지만 반환하는 문제이다.
tickets와 길이가 같은 check 배열을 통해 해당 티켓을 사용했는지 안했는지 체크한다.
만약 check에 0이 없다면 모든 티켓을 쓴 것이기 때문에 answer 배열에 추가한다.
Discussion and feedback