uploaded at 2023. 1. 24. 오후 3:34:58
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/43164
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
class Solution {
|
||||||
|
String[] als;
|
||||||
|
boolean done;
|
||||||
|
public String[] solution(String[][] tickets) {
|
||||||
|
String[] answer = {};
|
||||||
|
boolean[] visit = new boolean[tickets.length];
|
||||||
|
Arrays.sort(tickets, new Comparator<String[]> () {
|
||||||
|
@Override
|
||||||
|
public int compare(String[] o1, String o2[]) {
|
||||||
|
return (o1[0].compareTo(o2[0])!=0)?o1[0].compareTo(o2[0]):o1[1].compareTo(o2[1]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
for(int a = 0; a < tickets.length; a++) {
|
||||||
|
if(!tickets[a][0].equals("ICN")) continue;
|
||||||
|
ArrayList<String> al = new ArrayList<>();
|
||||||
|
al.clear();
|
||||||
|
al.add(tickets[a][0]);
|
||||||
|
visit[a] = true;
|
||||||
|
dfs(a, tickets, visit, 1, al);
|
||||||
|
visit[a] = false;
|
||||||
|
}
|
||||||
|
return als;
|
||||||
|
}
|
||||||
|
private void dfs(int pos,String[][] tickets, boolean[] visit, int depth, ArrayList<String> al){
|
||||||
|
int neoDepth = depth+1;
|
||||||
|
if(!done && depth == tickets.length) {
|
||||||
|
al.add(tickets[pos][1]);
|
||||||
|
done = true;
|
||||||
|
als = al.toArray(String[]::new);
|
||||||
|
}
|
||||||
|
else if(!done && al.size() < tickets.length){
|
||||||
|
for(int a = 0; a < tickets.length; a++){
|
||||||
|
if(a == pos) continue;
|
||||||
|
if(!visit[a] && tickets[pos][1].equals(tickets[a][0])) {
|
||||||
|
visit[a] = true;
|
||||||
|
al.add(tickets[a][0]);
|
||||||
|
dfs(a,tickets,visit,neoDepth,al);
|
||||||
|
al.remove(depth);
|
||||||
|
visit[a] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user