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