[정렬] 프로그래머스 : 가장 큰 수

JIN·2022년 11월 8일
0

문제 링크

풀이방식
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
profile
배우고 적용하고 개선하기

0개의 댓글