본문 바로가기

Problem Solving/Programmers - Python

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

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

 

 

가장 큰 수를 만들기 위해서는 주어진 numbers 배열을 각 숫자의 길이가 한글자라면 이뒤에도 이것과 같은 글자가 이어졌다고 생각하고 내림차순으로 정렬하고 앞에서부터 쭉 연결하면 된다.

즉 9와 90이 주어진다면 909 보다는 990이 크다. 따라서 9가 90보다 먼저오도록 정렬하려면 9를 99로 생각하고 정렬해야한다. 문제에서 주어진 numbers의 각 원소는 0 이상 1000 이하이므로 최대 한자리수가 세자리수와 비교될 수 있도록 모든 글자의 길이를 3배로 한다.

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

https://programmers.co.kr/learn/courses/30/lessons/42746

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr