처음에는 Stack, Queue를 사용해 보려 했는데 TreeMap으로 방향을 바꿨다. stack, queue 대신 treemap을 사용한 이유는 treemap은 자동으로 사전순으로 정렬해주기 때문이다.
TreeMap 또한 사용해본 경험이 없어서 다시 정리가 필요하다.
import java.util.*;
public class bj14725 {
static Scanner scanner = new Scanner(System.in);
static TreeMap<String, Object> tunnelMap = new TreeMap<>();
public static void main(String[] args) {
inputData();
findAnswer();
scanner.close();
}
public static void inputData(){
System.out.println("inputData()");
int i, j, N, T;
String food;
N = scanner.nextInt();
for(i = 0; i < N; i++){
T = scanner.nextInt();
TreeMap<String, Object> currentMap = tunnelMap;
for(j = 0; j < T; j++){
food = scanner.next();
currentMap.putIfAbsent(food, new TreeMap<String, Object>());
currentMap = (TreeMap<String, Object>) currentMap.get(food);
}
}
}
public static void findAnswer() {
System.out.println("findAnswer()");
System.out.println("printTunnelMapByRecurssion()");
printTunnelMapByRecurssion(tunnelMap, 0);
}
public static void printTunnelMapByRecurssion(Map<String, Object> map, int depth){
for (String key : map.keySet()) {
for (int i = 0; i < depth; i++) System.out.print("--");
System.out.println(key);
printTunnelMapByRecurssion((Map<String, Object>) map.get(key), depth + 1);
}
}
}