알고리즘
커스텀 정렬(파이썬)
가오가이거
2022. 7. 2. 21:04
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 = list(map(str, numbers))
n = sorted(n, key=functools.cmp_to_key(comparator), reverse=True)
answer = str(int(''.join(n))) # 0000의 경우에는 0으로 출력하려면 int하고 str으로 다시 변환해야 해요
return answer
print(solution([3, 30, 34, 5, 9]))
(출처: 프로그래머스)