가장 큰 수

이동호·2022년 11월 4일
0

배울 점: 쉬운 줄 알고 방심했는데 막상 풀어보면 쉽지만은 않은 문제이다. 기본적으로 버켓 소트를 이용했는데 그러기 위해서는 같은 자릿수로 만들어줘야 했다. 이때 앞자리수부터 최대 길이만큼의 수만큼 할당해주었다.

def solution(numbers):
    answer = ''
    new=[]
    for num in numbers:
        snum = str(num)
        size = len(snum)
        for i in range(4-size):
            snum += snum[i]
        new.append((snum, size))
    new.sort(key=lambda x: ((((x[0][0]),x[0][1]),x[0][2]),x[0][3]), reverse=True)
    for i in range(len(new)):
        for j in range(new[i][1]):
            answer+=new[i][0][j]
    if int(answer) == 0:
        return "0"
    return answer
profile
안녕

0개의 댓글