プログラマ-最大数


テキスト


質問する



sol

  • 番号の要素は0~1000以下->1~4の間で、すべての要素を12桁の
  • に統一します.
  • 12ビットの文字列を基準として
  • をソートする.

    警告(コピーではなく「0」を貼り付けた場合)


    12位に統一するために、最初は「0」の愚かな考えを考えました.
    ex)
  • 1)numbers = [10 , 100] :
    10、100が12位に統一されていると同じ値なので区別がつきません.!
  • 2)numbers = [ 6, 61] :
    12位に統一されると、600000000000<61 00000000のミスを犯すことになります.
  • code

    def solution(numbers):
        answer = []
        for i in numbers:
            digit =len(str(i))
            if digit == 4 :
                answer.append([str(i) * 3 , i])
            if digit == 3 :
                answer.append([str(i) * 4 , i])
                
            if digit == 2 :
                answer.append([str(i) * 6 , i ])
                
            if digit == 1 :
                answer.append([str(i) * 12 , i])
        #sort 
        f_list = []
        answer.sort(key = lambda x : x[0] , reverse= True)
        for i in answer:
            f_list.append(str(i[1]))
        return str(int(''.join(f_list)))