Leetcode Java Largest Number
업데이트:
문제
코드
class Solution {
public String largestNumber(int[] nums) {
String result = Arrays.stream(nums)
.mapToObj(String::valueOf)
.sorted((s1, s2) -> (s2 + s1).compareTo(s1 + s2))
.collect(Collectors.joining(""));
return result.startsWith("00") ? "0" : result;
}
}
결과
설명
-
양의 정수로만 이루어진 주어진 배열 nums를 이용하여 가장 큰 숫자의 문자형을 만드는 문제이다.
- 주어진 배열을 Arrays를 활용하여 가장 큰 숫자의 문자형으로 만들어준다.
- stream 메서드를 이용하여 nums를 Stream 객체로 전환한다.
- mapToObj 메서드를 이용하여 int형의 값들을 String으로 변환한다.
- sorted 메서드를 이용하여 내부 값들을 정렬시켜준다.
- 배열 내 값들을 문자열의 조합으로 더 큰 값이 앞으로 갈 수 있도록 정렬한다.
- collect 메서드를 이용하여 배열을 문자열로 연결시켜준다.
- 조합된 문자열이 “00”으로 시작될 경우 “0”을, 그 외의 경우 result를 주어진 문제의 결과로 반환한다.
- 조합된 문자열이 “00”인 경우, 0이 가장 큰 값이므로 “00”, “000” 등의 값들을 정수인 “0”으로 바꾸어 주는 것이다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기