cmp_to_key 파라미터를 사용해서 커스텀 정렬 방식을 사용할 수 있습니다.
리턴 값은 항상 1, 0, -1 이어야 합니다.
return 1
# 정렬 기준대로 앞으로 가기 위한 True의 의미
# 먼저 들어온 요소가 뒤로 정렬됨(나중에 들어온 요소가 앞으로 정렬됨)
return 0
# 정렬 기준에 해당사항이 없어 그대로, 아무 변동 없음
return -1
# 정렬 기준과 반대여서 뒤로가기 위한 False의 의미
# 먼저 들어온 요소가 앞에 정렬됨
# 프로그래머스 | 가장 큰 수
from functools import cmp_to_key
def compare(x,y):
if str(x)+str(y) <= str(y)+str(x):
return 1
else:
return -1
def solution(numbers):
answer = ''
numbers=sorted(numbers, key=cmp_to_key(compare))
answer = str(int("".join(map(str,numbers))))
return answer
# return 전에 map을 이용해서 str으로 join할 때 굳이 int로 바꿨다가 str으로 다시 바꾸는 이유
numbers = [0, 0, 0] 일 때 답이 0이 되기 위해서 필요합니다.