본문 바로가기
알고리즘

커스텀 정렬(파이썬)

by 가오가이거 2022. 7. 2.
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]))

(출처: 프로그래머스)

'알고리즘' 카테고리의 다른 글

사각배열을 만들어 출력하는 경우  (0) 2022.07.02
우선순위큐(최소힙)  (0) 2022.07.02
1이 될때까지.  (0) 2022.07.02
DFS / BFS  (0) 2022.06.29
피보나치 수열 구하기-파이썬  (0) 2020.12.13