두 문자를 합쳐서 내림차순으로 정렬하는게 핵심
public String solution(int[] numbers) {
String answer = "";
// 1. 문자열 배열로 변환
String[] str = new String[numbers.length];
for(int i = 0; i < numbers.length; i++){
str[i] = String.valueOf(numbers[i]);
}
// 2. 내림차순 정렬
Arrays.sort(str, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return (b+a).compareTo(a+b);
//오름차순 정렬 (o1+o2).compareTo(o1+o2);
}
});
//0값이 중복일경우 ex){0,0,0}
//답이 000이 나오면 안되므로 첫번째값이 0이면 0을 리턴
if (str[0].equals("0")) return "0";
//0이 아니면 문자열을 더해준다.
for(String s: str) answer += s;
return answer;
}
'solve' 카테고리의 다른 글
| [프로그래머스] Lv2. 올바른 괄호 (스택/큐) (1) | 2024.10.28 |
|---|---|
| [프로그래머스] Lv2. 최댓값과 최솟값 (0) | 2024.10.25 |
| [프로그래머스/BFS] Lv2. 게임 맵 최단 거리 (자바) (0) | 2024.01.13 |
| [프로그래머스/큐] Lv2. 기능 개발 (자바) (0) | 2024.01.12 |
| [프로그래머스/큐] Lv2. 프로세스 (자바) (0) | 2024.01.12 |