프로그래머스/Lv.2
[Python] 프로그래머스 가장 큰 수
MINU.SHINNNN
2024. 8. 13. 00:31
https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
주어진 numbers 에서 가장 큰 수를 만들 수 있도록 numbers를 정렬해야 합니다.
s1, s2가 s1+s2 < s2 + s1이라면 순서를 바꿔야 합니다. 즉, 뒤에 있는 숫자를 앞으로 가져와야 합니다.
numbers를 string으로 바꾸고 cmp_to_key를 사용하면 쉽게 정렬을 처리할 수 있습니다.
from functools import cmp_to_key
def compare(s1, s2):
if s1 + s2 < s2 + s1:
return 1
else:
return -1
def solution(numbers):
n = list(map(lambda x: str(x), numbers))
nn = sorted(n, key = cmp_to_key(compare))
return str(int(''.join(nn)))