상세 컨텐츠

본문 제목

Python | 정렬 cmp_to_key

카테고리 없음

by AI Engineer crystal 2024. 10. 6. 21:59

본문

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이 되기 위해서 필요합니다.