No Limitation
[정렬] 가장 큰 수 - 프로그래머스, 정렬 Customizing 본문
https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3
이 문제는 '임의의 정렬 기준을 어떻게 적용할 수 있을까'를 고민해보는 것이 중요하다
그 부분은 바로 _functool의 cmp_to_key라는 녀석이 있다는 것이 핵심이다...!!
https://gurumee92.tistory.com/161
예를 들어
이런 함수를 정의하고
이런 리스트가 있을 때
앞 뒤 차이를 기준으로 정렬을 하고자 하면
이런식으로 정렬할 수 있다. 함수를 기준으로!!!
물론 lambda도 사용 가능하다..!
그렇게 해서 사전 정렬을 고려하지 않고 나만의 기준으로 정렬을 시도함!!
def compare(x,y) :
return int(x+y)-int(y+x)
def solution(numbers) :
answer = ''
number_to_str = list(map(str,numbers))
number_to_str = sorted(number_to_str,key=cmp_to_key(compare),reverse=True)
print(number_to_str)
answer = ''.join(number_to_str)
if answer[0] == 0 : answer = '0'
print(solution(numbers))
복잡도는 sorted 되는 부분이 O(nlogn) 정도로 추정
_functool의 cmp_to_key를 반드시 체화하자!!
'프로그래밍' 카테고리의 다른 글
[스택큐] 프린터 - 프로그래머스 (0) | 2022.01.29 |
---|---|
[스택큐] 주식 가격 - 프로그래머스 (0) | 2022.01.29 |
[정렬] h-index - 프로그래머스 (0) | 2022.01.29 |
[정렬] K 번째 수 - 프로그래머스 (0) | 2022.01.29 |
[정렬] 두 수 뽑아서 더하기 - 프로그래머스 (0) | 2022.01.29 |