sy1214ei 님의 블로그

[Leet Code] 414. Third Maximum Number 본문

[Coding]

[Leet Code] 414. Third Maximum Number

sy1214ei 2024. 11. 25. 01:32
class Solution:
    def merge_sort(self, nums):
        if len(nums) > 1:
            mid = len(nums) // 2
            L = nums[:mid]
            R = nums[mid:]

            self.merge_sort(L)
            self.merge_sort(R)
            i = j = k = 0
            while i < len(L) and j < len(R):
                if L[i] < R[j]:
                    nums[k] = L[i]
                    i += 1
                else : 
                    nums[k] = R[j]
                    j += 1
                k += 1
            while i < len(L):
                nums[k] = L[i]
                i += 1
                k += 1
            while j < len(R):
                nums[k] = R[j]
                j += 1
                k += 1
        return nums
    def thirdMax(self, nums: List[int]) -> int:
        # nums를 정렬하기
        # sorted_nums[2] 반환하기
        # 세번째 maximum 없다면 sorted_nums[len(sorted_nums)-1] 반환하기
        nums = list(set(nums))
        nums = self.merge_sort(nums)
        if len(nums) >= 3:
            return nums[-3]
        else :
            return nums[-1]