728x90
반응형
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
최종 코드
hwayeon351/Programmers-Algorithms
프로그래머스 알고리즘 소스 코드 모음. Contribute to hwayeon351/Programmers-Algorithms development by creating an account on GitHub.
github.com
from collections import defaultdict
def dfs(t_from, visit, t_dict, num):
global answer
visit += t_from
if len(visit)//3 == num:
if answer=="":
answer = visit
else: answer=min(visit, answer)
return
if len(t_dict[t_from]) == 0:
return
for i, t_to in enumerate(t_dict[t_from]):
if t_to[1]==False:
t_dict[t_from][i][1] = True
dfs(t_to[0], visit, t_dict, num)
t_dict[t_from][i][1] = False
def solution(tickets):
global answer
answer = ""
t_dict = defaultdict(list)
for k, v in tickets:
t_dict[k].append([v,False])
t_dict[k].sort()
dfs("ICN", "", t_dict, len(tickets)+1)
return list(map(''.join, zip(*[iter(answer)]*3)))
풀이 과정
풀이 시간 1시간 11분
티켓 [a, b]는 a->b로 가기 때문에 이러한 tickets정보를 정리하기 위해 t_dict를 만들어줬다.
728x90
반응형
'코테 노트 > 프로그래머스' 카테고리의 다른 글
Level 2 소수 찾기 Python3 (0) | 2021.06.28 |
---|---|
Level 1 모의고사 Python3 (0) | 2021.06.28 |
Level 2 [1차] 프랜즈 4블록 <KAKAO 2018 BLIND RECRUITMENT> (0) | 2021.02.09 |
Level 2 [1차] 뉴스 클러스터링 <KAKAO 2018 BLIND RECRUITMENT> (0) | 2021.02.09 |
Level 2 [1차] 캐시 <KAKAO 2018 BLIND RECRUITMENT> (0) | 2021.02.09 |