1. 문제 풀이 아이디어
- 주어진 숫자 배열을 문자열 배열로 변환하여 정렬하면 문제를 해결할 수 있다.
2. 나의 정답 코드
class Solution {
public String solution(int[] numbers) {
String answer = Arrays.stream(numbers).mapToObj(String::valueOf).sorted((o1, o2) -> (o2 + o1).compareTo(o1 + o2)).collect(Collectors.joining());
return answer.startsWith("0") ? "0" : answer;
}
}
3. 정리
Arrays.stream(numbers).mapToObj(String::valueOf)
숫자 배열를 문자열 스트림 변환한다.
- 두 문자열을 이어붙였을 때 더 큰 값이 앞에 오도록 내림차순 정렬한다.
Collectors.joining()
으로 정렬된 문자열을 하나로 합친다.
- 결과가
"0"
으로 시작하면"0"
반환, 아니면 결과를 반환한다.
Share article