[Programmers]-가장 큰 수(정렬)

문제

다시풀어보는 문제이다.

“코딩테스트 고득점 Kit - 정렬” 문제이다.

코드

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        ArrayList<String> list = new ArrayList<String>();

        for(int i=0;i<numbers.length;i++) list.add(Integer.toString(numbers[i]));

        Collections.sort(list, (String s1, String s2) -> {
            return (s2+s1).compareTo(s1+s2);
        });     

        if("0".equals(list.get(0))) return "0";

        for(int i=0;i<list.size();i++) answer+=list.get(i);

        return answer;
    }
}

다시푼 코드

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        ArrayList<String> list = new ArrayList<>();
        
        for(Integer number : numbers)
            list.add(""+number);
        
        Collections.sort(list, (o1, o2) -> (o2+o1).compareTo(o1+o2));
        
        if(list.get(0).equals("0")) return "0";
        
        for(String number : list)
            answer += number;
        return answer;
    }
}

요약

빨라지긴 했다.

코드 내용은 달라진것이 없다.

람다식을 조금 이해했다.