[LeetCode_179] Largest Number(Python)

그냥·2024년 7월 14일
0

알고리즘

목록 보기
13/23

https://leetcode.com/problems/largest-number/description/

문제


코드

from functools import cmp_to_key
class Solution:
    def largestNumber(self, nums: List[int]) -> str:
        def compare(a, b):
            return -1 if a + b > b + a else 1 if a + b < b + a else 0 
        nums = list(map(str, nums))
        nums = sorted(nums, key=cmp_to_key(compare))
        ans = ''.join(nums)
        return '0' if ans[0] == '0' else ans

Idea1

cmp_to_key : 비교 함수(comparison function)를 키 함수(key function)로 변환하는 데 사용
def compare() : 모든 경우의 수에 대해 left, right 비교
0 or 1 -> stay
-1 -> left, right swap

Idea2

ans = '000 ~' 인 경우 -> ans[0]의 위치에는 가장 큰 값이 들어감 -> ans[0]가 0인 경우 결과적으로 '0'이 도출되어야 함

0개의 댓글