プログラマのソート-最大数
https://programmers.co.kr/learn/courses/30/lessons/42746
問題の説明
0または正の整数を指定すると、最大の整数を見つけます.
例えば、与えられた整数が[6,10,2]である場合、最大数が6210である[610261010621026102106]を作成することができる.
パラメータに指定された配列番号が0または正の整数の場合、作成可能な最大番号を文字列に変換して戻すソリューション関数を作成します.
せいげんじょうけん
に答える
最初は配列ですべての数列を求め、最大値を抜きます
答えは正しいが、タイムアウトが発生した.
だからソートの問題だと思っています.
[3,30,34,5,9]の例では、文字列でソートします.
9 5 34 30 3になるかどうか.
どうしようかと悩んだあげく、とうとう結果が出た.
文字列ごとに何回か乗じて解決する斬新な方法を見つけた.
各文字に5回乗算します.
99999
55555
3434343434
3030303030
33333
になる
これに基づいて、文字列を逆順に並べます.
9 5 34 3 30
いいですよ.def solution(numbers):
arr = sorted(list(map(str, numbers)), key=lambda x: x*5, reverse=True)
# ''.join(arr) 원래 여기 까지만 해주면 되나 [0,0,0,0] 들어올시를 대비해
answer = str(int(''.join(arr)))
return answer
简単な问题ですが、时间がかかりすぎて、问题を解决できません.ううう
Reference
この問題について(プログラマのソート-最大数), 我々は、より多くの情報をここで見つけました
https://velog.io/@whanhee97/프로그래머스-정렬-가장-큰-수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(numbers):
arr = sorted(list(map(str, numbers)), key=lambda x: x*5, reverse=True)
# ''.join(arr) 원래 여기 까지만 해주면 되나 [0,0,0,0] 들어올시를 대비해
answer = str(int(''.join(arr)))
return answer
Reference
この問題について(プログラマのソート-最大数), 我々は、より多くの情報をここで見つけました https://velog.io/@whanhee97/프로그래머스-정렬-가장-큰-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol