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)))