문제
작성 코드
def solution(numbers):
if list(set(numbers)) == [0]:
return "0"
numbers = [str(i) for i in numbers]
numbers.sort(key = lambda x:(x*4)[:4],reverse=True)
answer = ''.join(numbers)
return answer
풀이
리스트가 [2,7,46]라면, [7,46,2]로 정렬하여 "7462"를 리턴해야한다.
이걸 만드는 코드와 과정은 이렇다.
1. 리스트 내 모든 원소가 0이면 "0"으로 return한다.
2. numbers의 원소를 string으로 변경한 뒤, 천의 자리까지 따진다는 점을 고려해서 문자열을 4배해서 :4까지 자른다.
굳이 4배를 한 이유는 1부터 9까지 한자리수의 경우를 고려하기 위함이었다.
이를 적용하여 실행한 예시는 이렇다.
ex) ["9", "12", "34", "1"] → ["9999", "1212", "3434", "1111"] → (정렬) → ["9999", "3434", "1212", "1111"] → (원본) → ["9","34","12","1"]
3. 정렬된 리스트는 join으로 answer를 생성하고 출력한다.