파이썬으로 부시자! Python with Coreenee

프로그래머스 - 정렬 - 가장 큰 수

문제

스크린샷 2020-04-18 오후 10 13 10

입력

스크린샷 2020-04-18 오후 10 13 23


나의 처음 코드

이 문제는 정렬과 문자열과 두뇌를 이용해서 푸는 문제인 것 같다. 나 같은 경우는 결국 효율적인 방법을 찾다가 못 찾아서 다른 분들의 코드를 참고해서 풀었다. 접근 방법에 대해서 주어진 정수로 생각하지 않고, 문자열로 바꿔서 문자열의 특성을 이용하는게 중요한 것 같다.(여튼 스스롬 못품ㅋㅋㅋ) 아래의 코드를 이해하기 위해서는 sort할 때, 기준을 문자열을 3번 반복한 것에 주목을 해야한다. 원소들의 최대값이 1,000이하이므로 예를들어 [3, 33, 30]이 나왔을 때, 2십의 자리가 겹치는 33과 30의 경우에는 누가 더 앞에 서야할 지 정해야한다. 그러기 위해서 3번 반복을하여 333, 333333, 303030을 문자열로 비교해줘서 33이 오고 3이오고 30이 오도록 해야한다는 뜻이다. 이런 생각을 한다는게 매우 창의적인 것 같다. 나도 노력해야지,,,,

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

노력하자 노력,,,