1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
// numbers 배열을 String 배열로 변환
String[] tmp = Arrays.stream(numbers).mapToObj(String::valueOf).toArray(String[]::new);
// 앞 뒤 숫자를 연결해서 큰 부분이 앞에 오도록 설정
Arrays.sort(tmp, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2 + o1).compareTo(o1 + o2);
}
});
if(tmp[0].equals("0"))
answer = "0";
else
answer = String.join("", tmp);
return answer;
}
}
|
cs |
주어진 수들의 조합으로 가장 큰 수를 만드는 문제이다.
정렬을 어떻게 하는지가 가장 중요한데 단순한 오름차순, 내림차순으로는 문제를 해결할 수 없다.
사용자가 원하는 형태로 비교해서 정렬할 수 있는 Comparator를 이용하여 해결하였다.
'Programmers > Level2' 카테고리의 다른 글
게임 맵 최단거리 (0) | 2021.07.14 |
---|---|
오픈채팅방 (0) | 2021.07.14 |
더 맵게 (0) | 2021.07.12 |
타겟 넘버 (0) | 2021.07.12 |
카카오프렌즈 컬러링북 (0) | 2021.07.11 |