[プログラマ/python]最大ソート数



https://programmers.co.kr/learn/courses/30/lessons/42746

アルゴリズム分類

  • ソート
  • 問題を解く


    最初は、すべての状況の数のため、ソートを考えていました.(置換関数)
    使っていた頃から時間がオーバーしていたので少し不安でしたが、やはりテストケースに合格しただけで全てタイムアウト.ほほほ
    ソートでは、キー値が降順に並べ替えられ、ソートの基準は各要素*3の値です.(どうしようかな…)
    これは、各要素「6」、「10」、「2」が「666」、「101010」、「222」を基準としてソートされ、文字列ソートは最初のインデックスから順にASCIIコードに従ってソートされます.このようにしない場合は、直接ソートを行い、第2例の330対303が大きいので、3,30の順にソートすべきであるが、比較可能な値はないので、30,3にソートする.
    最後のstr(int()は、「000」に「0」を出力するためである.

    ソースコード

    def solution(numbers):
        lst=list(map(str, numbers))
        lst.sort(key=lambda x:x*3, reverse=True)
    
        return str(int(''.join(lst)))