No Limitation
[정렬] 가장 큰 수 - 프로그래머스, 정렬 Customizing 본문
https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
이 문제는 '임의의 정렬 기준을 어떻게 적용할 수 있을까'를 고민해보는 것이 중요하다
그 부분은 바로 _functool의 cmp_to_key라는 녀석이 있다는 것이 핵심이다...!!
python 내 마음대로 정렬(sort)!
아 파이썬도 자바처럼 정렬을 조작할 수는 없나..라는 생각은 가지고 있었지만정말 있는지는 몰랐다.당연히 있었겠지만 나는 이제야 알아버렸다.그 내용을 정리해보고자 한다!2차원 평면 위의
velog.io
https://gurumee92.tistory.com/161
프로그래머스 문제 풀이 가장 큰 수
이 문제는 이시윤 강사님의 프로그래머스 강좌 "파이썬을 무기로, 코딩테스트 광탈을 면하자!"를 보고 정리한 내용입니다. 문제 URL 가장 큰 수 Contents 문제 지문 파악하기 강사님의 알고리즘 풀
gurumee92.tistory.com
예를 들어
이런 함수를 정의하고
이런 리스트가 있을 때
앞 뒤 차이를 기준으로 정렬을 하고자 하면
이런식으로 정렬할 수 있다. 함수를 기준으로!!!
물론 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 |