https://programmers.co.kr/learn/courses/30/lessons/42746
처음에 모든 경우의 수때문에 순열을 생각했었다.(permutations함수)
쓸 때부터 시간 초과될 것 같아서 꺼림칙했는데 역시나 테스트케이스만 통과하고 모조리 시간 초과가 떴다..ㅎ
정렬에서 key값을 기준으로 내림차순시키는데 정렬시키는 기준은 각 원소에 *3을 한 값이다. (이런생각어떻게하지...)
이는 각 원소 '6', '10', '2'가 '666', '101010', '222'를 기준으로 정렬하는 것인데 문자열 정렬은 첫 번째 인덱스부터 차례대로 ascii코드에 따라 정렬을 하게 된다. 이렇게 안하고 그냥 바로 정렬을 하면 두 번째 예시의 경우, 303보다는 330이 크므로 3,30순으로 정렬이 되어야 하는데 3다음에 비교할 값이 없어서 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)))