강의로 돌아가기
박수지

제시된 테스트케이스 2개는 다 돌아가는데 나머지는 안되서 50점이예요 ㅠㅠ

혹시 다른 테스트 케이스 있나요?.. 있는 케이스는 다 돌아가서 ㅠㅠ

작성중인 코드―Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Arrays;
import java.util.Comparator;

class Solution {
    public String[] solution(String[][] arr) {

        Arrays.sort(arr, new Comparator <String []> () {
            public int compare(String[] o1, String[] o2) {
                if(o1[1].charAt(0) > o2[1].charAt(0)) return 1;
                else return -1;
            }
        });

        boolean visit[] = new boolean[arr.length];
        String answer[] = new String[arr.length+1];

        for(int i=0; i<arr.length; i++) {
            if(arr[i][0].equals("ICN")) {
                visit[i] = true;
                answer[0] = arr[i][0];
                dfs(arr, visit, 1, answer, i);
            }
        }

        return answer;
    }

    public static String[] dfs (String[][] arr, boolean[] visit, int cnt, String[] answer, int index) {
        if(cnt == arr.length) {
            answer[cnt] = arr[index][1];
            return answer;
        }

        for(int i=0; i<arr.length; i++) {
            if(arr[i][0].equals(arr[index][1]) && !visit[i]) {
                answer[cnt] = arr[i][0];
                visit[i] = true;
                dfs(arr, visit, cnt+1, answer, i);
            }
        }

        return null;
    }
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.