프로그래머스(Python) 풀이/Level.2

프로그래머스(Python) 42746번 가장 큰 수 풀이

개발윗미 2022. 5. 4. 18:30

Python으로 구현한 42746번 가장 큰 수 문제 풀이입니다.

 

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

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr


def solution(numbers) :
    answer = ''
    numbers = list(map(str, numbers))
    numbers = (sorted(numbers, key=lambda x: x * 5, reverse=True))

    for value in numbers :
        answer += str(value)

    return str(int(answer))

 

1. 전달받은 numbers의 요소들을 문자열 형태로 변환해준다.

 

2. numbers 리스트를 (첫 번째 자리 높은 순) -> (문자열의 길이가 높은 순) 으로 정렬한다.

** 참고 : 각 문자에 5를 곱해 해당 문자가 5번 반복되게 한 후 그 문자열을 통해 정렬을 수행

 

3. 정렬된 numbers 리스트의 문자열을 하나씩 꺼내 answer에 이어 붙인다.

 

4. 모든 문자열을 이어붙이면, 최종적으로 answer를 반환한다.