from itertools import permutations
def solution(numbers):
answer = ''
numbers = list(map(str, numbers))
numbers = sorted(numbers, key=lambda x: x*3, reverse = True)
return str(int("".join(numbers)))
이 문제의 핵심은 3, 30, 34 이렇게 앞자리가 같은 숫자에 대해 어떻게 정렬하느냐이다.
주어지는 numbers의 원소가 1000 이하이므로 sorted(numbers, key=lambda x: x*3, reverse = True) 이렇게 문자를 3번 더한 것을 정렬해서 구할 수 있다.
3, 30, 34를 그냥 정렬하게 되면 34 30 3 이렇게 되는데 가장 큰 경우는 34 3 30 이렇게 되어야한다. 하지만 문자를 3번 더해주면 343434 333 303030 이 되므로 옳게 정렬된다.
알고 보면 정말 단순해보이지만 정렬 방법을 찾기 위해 다른 방법으로 많이 도전했었다... permutations을 사용해본다던지 등...