문제: https://programmers.co.kr/learn/courses/30/lessons/43164
DFS 문제입니다.
DDijkstra님의 풀이를 통해 해결했습니다. (https://devje8.tistory.com/)
사전순으로 가장 빠른 경로를 리턴하기 위해 티켓을 '도착지' 기준으로 오름차순 정렬합니다.
티켓을 오름차순 정렬 했으므로 ticketList[N]과 ticketList[N+1]의 출발점 공항이 동일하면
ticketList[N]의 도착지 공항이 ticketList[N+1] 도착지 공항보다 알파벳 순서가 앞섭니다.
그러므로 for (int index = 0; index < ticketList.size; ++index) 으로 DFS 탐색해도 사전순 탐색이 보장됩니다.
주어진 티켓을 전부 사용해야하므로 총 탐색 깊이는 티켓의 갯수입니다.
코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/PG43164.cc
'Algorithm > Programmers' 카테고리의 다른 글
[2020 카카오 기출] 기둥과 보 설치 (0) | 2020.08.11 |
---|---|
[2020 카카오 인턴십] 경주로 건설 (0) | 2020.08.04 |
[2020 카카오 인턴십] 보석 쇼핑 (0) | 2020.07.25 |
[2020 카카오 인턴십] 수식 최대화 (0) | 2020.07.25 |
[2020 카카오 인턴십] 키패드 누르기 (0) | 2020.07.25 |