0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 반환하는 함수 작성
def solution(numbers):
num_arr = list(map(str, numbers))
num_arr.sort(key=lambda x: x*3, reverse=True)
return str(int(''.join(num_arr)))
입력받은 1차원 배열인 0 이상의 정수 집합을 문자열 배열로 저장
해당 배열을 정렬하되, 각 원소가 0 이상 1000 이하라는 제한사항을 활용하여 각 문자열을 3번씩 반복했을 때 크기를 기준으로 내림차순 정렬
3과 30을 비교할 때 문자열 303030이 문자열 333보다 먼저 정렬됨을 활용하는 방법.
숫자 3이 30보다 먼저 나와야 더 큰 수를 만들 수 있기 때문에 내림차순 정렬.
만약 제한조건이 10000 이하였을 경우, 정렬 조건은lambda x: x*4
가 되었을 것.
이후 해당 배열의 각 개체들을 str
타입의 join()
함수로 결합하여 정수 변환 후 다시 문자열로 반환
여기에서 정수로 한 번 변환하는 이유는
'00000'
같은 경우를 제거하기 위함.