프로그래머스에서 여행경로 문제를 풀었습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/43164
문제에 대한 설명은 위의 링크에서 확인하시면 됩니다.
저는 이 문제를 BFS로 풀어서 큐를 사용했습니다.
여행 경로의 출발지는 무조건 ICN(인천)이라서 출발지가 ICN인 티켓을 찾아서 큐에 추가하고
주어진 항공권 사용여부를 확인하기 위한 boolean 배열을 큐에 추가합니다.(35~47라인)
항공권을 조회해서 여행 경로를 탐색합니다.(51~88라인)
현재 항공권의 도착지 기준으로 다음 목적지 찾은 경우 큐에 추가합니다.(76~87라인)
현재 항공권으로 갈 수 있는 목적지가 2개 이상일 수 있기 때문에 완전 탐색해야 하고,
분기처리 해야 하기 때문에 현재 경로를 관리하는 StringBuilder와 boolean 배열을 새로 생성하고 큐에 추가합니다.
모든 항공권을 사용했는지 확인합니다.(61~68라인)
모든 항공권을 사용한 경우 해당 여행 경로를 리스트에 추가합니다.(70~74라인)
여행 경로를 알파벳 순으로 정렬하고 가장 앞에 있는 경로를 배열로 리턴합니다.(90~93라인)