상상쓰

[프로그래머스] 가장 큰 수 본문

Coding Test

[프로그래머스] 가장 큰 수

상상쓰 2021. 6. 3. 17:27

https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3 

 

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

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

programmers.co.kr

 

java 로 풀었을 때 comparator 를 이용해 풀었었는데 파이썬에도 같은 방법으로 풀었다.

 

from functools import cmp_to_key 

def comparator(x, y):
    return int(str(y) + str(x)) - int(str(x) + str(y)) 
    
def solution(numbers):
    answer = ''
    numbers = sorted(numbers, key = cmp_to_key(comparator))
    answer = ''.join(map(str, numbers))
    
    if answer[0] == '0':
        answer = '0'
    
    return answer

print(solution([6, 10, 2])) # 6210
Comments