[프로그래머스] 정렬 - 가장 큰 수 (파이썬) - Statssy


코딩테스트 연습 - 정렬 - 가장 큰 수 (파이썬)

코딩테스트 연습 - 정렬 - 가장 큰 수를 풀어본다.

  • 내 코드와 다른 잘 짠 코드랑 로직은 비슷한데 길이차이처럼 실력차이가 난다..
  • 결국 숫자를 3자리로 만들어서 솔팅시키는 방법이다.
  • 마지막에 str(int)로 바꿈으로써 000을 0으로 바꾼 기술은 정말 배울만 하다.

내 코드

def solution(numbers):
    if max(numbers) == 0:
        answer = '0'
    else:
        numbers_str = list(map(str, numbers))
        max_len = len(str(max(numbers)))
        temp = []
        tup = []
        idx = []
        summ = []
        for numstr in numbers_str:
            if len(numstr) < max_len:
                temp.append(numstr*max_len)
            else :
                temp.append(numstr)

        for n, x in enumerate(temp):
            tup.append((n,x))

        tup.sort(key = lambda element : element[1], reverse=True)

        for t in tup:
            idx.append(t[0])

        for i in idx:
            summ += numbers_str[i]
        answer = ''.join(summ)
    return answer

잘 짠 다른 사람 코드

def solution(numbers):
    numbers = list(map(str, numbers))
    numbers.sort(key=lambda x: x*3, reverse=True)
    return str(int(''.join(numbers)))





© 2018. by statssy

Powered by statssy