Python/정렬

[Algorithm] 프로그래머스 42746 가장 큰 수 | 파이썬 (정렬)

유일리 2024. 9. 5. 15:24

※ 42746 가장 큰 수

https://school.programmers.co.kr/learn/courses/30/lessons/42746

 

문제 해결 TIP

문자열 비교에 대해 먼저 알아보자. 

print('2'<'20') #True
print('222'<'202020') #False

위와 같이 '2'와 '20'을 비교하면 '20'이 크지만, '220'과 '202'를 비교하면 '220'이 더 커야한다. 따라서 문자열을 반복해주어 일관된 기준으로 비교해준다. 조건 중 numbers의 원소가 1000 이하인 점을 참고하여 3번 반복한 문자열들끼리 비교 정렬하여 출력하도록 한다.

 

전체 코드

def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x: x*3, reverse=True)
    return str(int(''.join(numbers)))