강의로 돌아가기
SangGi Hong

테스트케이스 5개 이상 작성시 에러

기존 테스트케이스를 포함해 현재 4개의 테스트케이스가 존재하는 상태에서 테스트케이스를 하나 더 추가하려하니
은(는) 지원하지 않는 타입입니다.
라는 문구가 뜹니다.
해당 문구가 나타난 이후에 추가하려던 테스트케이스를 지워보니 해당 테스트케이스의 바로 전(4번째 테스트케이스)가 지워지는 등 이상현상이 나타나네요.

작성중인 코드―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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.List;
import java.util.ArrayList;
import java.lang.StringBuilder;

class Solution {
    public String solution(int[] numbers) {
        int max = 0;
        for (int n : numbers) {
            if (n > max)
                max = n;
        }
        if (max == 0)
            return "0";

        List<String> list = Arrays.stream(numbers)
            .mapToObj(a -> Integer.toString(a))
            .collect(Collectors.toList());

        list = list.stream()
            .sorted((a, b) -> {
                int indexA = 0;
                int indexB = 0;
                while(a.charAt(indexA) == b.charAt(indexB)) {
                    if (indexA == a.length() - 1
                        || indexB == b.length() - 1)
                        break;
                    indexA++;
                    indexB++;
                }

                while(a.charAt(indexA) == b.charAt(indexB)) {
                    if (indexA == a.length() - 1)
                        break;
                    indexA++;
                }

                while(a.charAt(indexA) == b.charAt(indexB)) {
                    if (indexB == b.length() - 1)
                        break;
                    indexB++;
                }

                if (a.charAt(indexA) == b.charAt(indexB)) {
                    return indexA - indexB;
                }
                return -Character.compare(a.charAt(indexA), b.charAt(indexB));
            })
            .collect(Collectors.toList());

        StringBuilder sb = new StringBuilder();
        for (String s : list)
            sb.append(s);

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