알파벳이 빠른 순서 해결하는 방법
여행경로를 String에 " " 공백과 함께 넣고
Collections.sort를 이용할 것!
티켓이 3장이면 visit배열과 같이 경로체크 배열도 3개다
따라서 마지막에 남는 도착지 경로를 적을 수 없어서
함수가 지저분하지만 계속 티켓의 마지막 경로도 함께 전달하였다.
그래서 마지막 DFS를 나가는 조건문에 이 도착지 정보를 공백과 함께 추가한다.
import java.util.*;
import java.io.*;
class Solution {
static int n=0;
static int[] visit;
static ArrayList<String> list;
public String[] solution(String[][] tickets) {
n = tickets.length; // 행의 수 = 데이터 개수
visit = new int[n];
list = new ArrayList<>();
for(int i=0;i<n;i++){
if(tickets[i][0].equals("ICN")){
visit[i]=1;
DFS(i,tickets[i][1],"ICN",tickets,1);
visit[i]=0;
}
}
String[] best_rout ={};
Collections.sort(list);
String answer = list.get(0);
best_rout = answer.split(" ");
return best_rout;
} //solution
static void DFS(int start,String after, String result, String[][] tickets, int level){
if(level==n){
result=result+" "+after;
list.add(result);
return;
}else{
String[] trash= new String[n];
for(int i=0;i<n;i++){
if(tickets[start][1].equals(tickets[i][0]) && visit[i]==0){
visit[i]=1;
DFS(i,tickets[i][1],result+" "+tickets[start][1],tickets,level+1);
visit[i]=0;
}//if
}//for
}//else
}
}