문제 설명

Given a list of non-negative integers nums, arrange them such that they form the largest number.

Note: The result may be very large, so you need to return a string instead of an integer.

Example 1

Input: nums = [10,2]
Output: "210"

Example 2:

Input: nums = [3,30,34,5,9]
Output: "9534330"

Example 3:

Input: nums = [1]
Output: "1"

Example 4:

Input: nums = [10]
Output: "10"

Constraints:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 10^9

문제풀이

class Solution {
    
    func largestNumber(_ nums: [Int]) -> String {
        
        let numbers: [String] = nums.compactMap { String($0) }
        let answer = numbers.sorted { $0 + $1 > $1 + $0 }.joined()
        
        if answer.hasPrefix("0") { return "0" }
        
        return answer
    }
}


참고 : https://leetcode.com/problems/largest-number/