리트코드 179
숫자 리스트의 조합 중 가장 큰 수 문자열로 출력하기
class Solution:
def cmp(self, x, y):
if x + y < y + x:
return 1
else:
return -1
def largestNumber(self, nums: List[int]) -> str:
nums = [str(num) for num in nums]
result = ""
nums = sorted(nums, key=functools.cmp_to_key(self.cmp))
if nums[0] == "0":
return "0"
for num in nums:
result = result + num
return result
public String solution(int[] numbers) {
String answer = "";
String [] snumbers = new String[numbers.length];
for(int i=0; i<numbers.length; i++){
snumbers[i] = String.valueOf(numbers[i]);
}
Arrays.sort(snumbers, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2+o1).compareTo(o1+o2); // 내림차순
}
});
if(snumbers[0].equals("0")) return "0"; // "000" 제거
for(String str : snumbers){
answer += str;
}
return answer;
}