Programmers/Level2
가장 큰 수
zzunsik
2021. 7. 13. 03:08
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를 이용하여 해결하였다.