풀이방식
1. 정수를 이어붙여 수를 만들어 비교한다 => 람다를 이용해서 문제를 풀면된다.
2. numbers의 원소가 1000이하이므로 문자열을 만들어 비교한다고 해도 1000을 넘어간 것은 비교하지 않는다 예를 들면 arr[:3]까지만 비교하는 것과 같다.
3. 문자열을 비교할때는 인덱스끼리 비교하기 때문에 이것이 숫자로 더 크다고 해도 상관이 없다. 사전순 배열과 같은 원리랄까낭
abcbbbb 를 비교한다면 acbbbbbbbbb 앞의 것이 먼저오니까!
코드
def solution(numbers):
answer = ''
tmp = sorted(numbers, key=lambda x: (str(x)*3), reverse = True)
tmp = list(map(str, tmp))
if len(set(tmp)) == 1:
return tmp[0]
else:
answer = ''.join(tmp)
return answer