(leetcode) largest-number-after-digit-swaps-by-parity

hwisaac·2024년 11월 25일
0

코테TIL

목록 보기
19/20

문제링크

https://leetcode.com/problems/largest-number-after-digit-swaps-by-parity/

풀이

class Solution(object):
    def largestInteger(self, num):
        # 숫자를 문자열로 변환하여 각 자리 숫자 추출
        digits = list(map(int, str(num)))
        
        # 홀수와 짝수 분리
        odd_digits = sorted([d for d in digits if d % 2 != 0], reverse=True)
        even_digits = sorted([d for d in digits if d % 2 == 0], reverse=True)
        
        # 결과 숫자를 저장할 리스트
        result = []
        odd_index, even_index = 0, 0
        
        # 원래 자리 순서를 유지하며 홀수와 짝수를 교체
        for d in digits:
            if d % 2 == 0:
                result.append(even_digits[even_index])
                even_index += 1
            else:
                result.append(odd_digits[odd_index])
                odd_index += 1
        
        # 결과를 정수로 변환하여 반환
        return int("".join(map(str, result)))
            

0개의 댓글