技巧:
    单维度套路贪心
思路:
    ------- A , B ------- (A在前和B在前不会影响到前后的最优策略)
    那么什么情况A在前呢?    ====>     A + B > B + A
实现:
package main
import "fmt"

func main() {
    // 参数接收
    var n int 
    fmt.Scan(&n)
    arr := make([]string, n)
    for i := 0; i < n; i++{
        fmt.Scan(&arr[i])
    }
    
    if n == 0{
        fmt.Println("")
    }else {
        ans := ""
        sort(arr)
        for i := 0; i < n; i++ {
             ans += arr[i]
        }
        fmt.Println(ans)
    }
}

// (a + b) > (b + a)   =>  true
func compare(a, b string)bool{
    var1, var2 := a + b, b + a
    for i := 0; i < len(var2); i++ {
        if var1[i] < var2[i] {
            return false
        }else if var1[i] > var2[i] {
            return true
        }
    }
    return false
}
// 插入排序
func sort(arr []string) {
    for i := 1; i< len(arr); i++ {
        for j := i; j > 0 && compare(arr[j],arr[j - 1]); j-- {
             arr[j],arr[j - 1] = arr[j - 1],arr[j]
        }
    }
}