LV 2: 가장 큰 수

ewillwin·2023년 9월 7일
0

문제 링크

LV 2: 가장 큰 수


구현 방식

  • 처음에는 그냥 각 숫자를 list로 변환하고 nums.sort(reverse=True)로 sorting하면 될 줄 알았는데, [3, 0]이 [3]보다 앞에 오는 게 문제였다
    -> number가 1,000 이하의 수라는 점을 이용하여 3번 이어 붙인 값의 크기 기준으로 내림차순 정렬을 하면 해결된다 (30 -> 303030, 3 -> 333에서 앞부분을 확인했을 때 후자의 경우가 더 큼)

코드

def solution(numbers):
    
    nums = []
    for number in numbers: nums.append(str(number))
    
    #number는 1000이하의 수 -> 3번 이어 붙인 값의 크기 기준 내림차순 정렬
    nums.sort(key=lambda x: list(x*3)[:4], reverse=True)
    
    result = ""
    for num in nums: result += "".join(map(str, num))
    return str(int(result))
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글