알고리즘 풀이/프로그래머스

프로그래머스 - 가장 큰 수 (정렬)

배게 2019. 12. 8. 18:07
728x90

람다식을 생각 못하고 


일일히 숫자들을 string으로 바꾸고 charAt으로 비교해주는 식으로 멍청하게 했다. 


일단은 속도는 둘째치고 보기 편한 식인 람다식으로 만들기 위해 


string을 붙여서 비교한다는 생각을 못했던 것이 제일 큰 실수였다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public String solution(int[] numbers) {
        String answer = "";
 
        List<String> arr = new ArrayList<>();
 
        for (int i = 0; i < numbers.length; i++) {
            // System.out.println(numbers[i]);
            arr.add(Integer.toString(numbers[i]));
        }
 
        Collections.sort(arr, (a, b) -> -Integer.compare(Integer.parseInt(a + b), Integer.parseInt(b + a)));
        // System.out.println();
        StringBuilder sb = new StringBuilder();
        for (String s : arr) {
            sb.append(s);
            // System.out.println(s);
        }
        answer = sb.toString();
        if (answer.charAt(0== '0')
            return "0";
 
        return answer;
    }
cs