정렬알고리즘 에 대해 공부하고, 알고리즘 스터디 4주차 과제로 프로그래머스 ‘가장 큰 수’ 문제를 풀이하였다.
코딩테스트 연습 - 가장 큰 수 | 프로그래머스 스쿨 (programmers.co.kr)
자바에서는 배열을 정렬할 때, 사용하는 정렬 알고리즘을 메서드로 제공한다.
배열 혹은 리스트로 구성된 원소들을 특정한 규칙에 따라, 오름차순 혹은 내림차순으로 정렬을 할 수 있으며, 기본값으로 오름차순 정렬을 한다.
Arrays.sort(배열);
오름차순 정렬이 아닌, 임의의 정렬기준을 적용하려면 Comparator를 구현한 클래스를 두번째 전달 인자로 주어 원하는 방식대로 정렬 가능
Comparator는 정렬을 하기 위한 여러가지 명세를 제공하는 인터페이스로
public static String solution(int[] numbers) {
//숫자를 문자열로 변환
String[] result = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
result[i] = String.valueOf(numbers[i]);
}
//정렬하기
Arrays.sort(result, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return ((o2 + o1).compareTo(o1 + o2));
}
});
// 데이터가 0만 있을 경우 하나의 0만 리턴
if(result[0].equals("0")) {
return "0";
}
String answer="";
for(int i=0; i<result.length; i++){
answer += result[i];
}
System.out.println(answer);
return answer;
}