🧐ideation
- 51, 5, 57 이렇게 있으면 57, 5, 51 이렇게 배열해야 최대가 나옴.
- 다시 말해, 두자리 숫자라면 둘째 자리 수가 앞자리 수보다 작을때는 뒤로 가는게 낫고, 그게 아니라면 앞으로 와야함.
from itertools import permutations
def solution(numbers):
return str(max([ int(''.join(list(map(lambda x : str(x),perm)))) for perm in permutations(numbers)]))
991, 9 가 있다면 9 가 먼저 올 수 있도록 991991991, 999 로 늘여서 비교.
def solution(numbers):
numbers=sorted([(str(num)*3, num) for num in numbers] ,key= lambda x : x[0], reverse = True)
return ''.join([str(tup[1]) for tup in numbers])
import functools
def comparator(a,b):
t1 = a+b
t2 = b+a
return (int(t1) > int(t2)) - (int(t1) < int(t2)) # t1이 크다면 1 // t2가 크다면 -1 // 같으면 0
def solution(numbers):
n = [str(x) for x in numbers]
n = sorted(n, key=functools.cmp_to_key(comparator),reverse=True)
answer = str(int(''.join(n)))
return answer