SlidingWindowMedian

Published at 2022-06-09

class Solution:
    def medianSlidingWindow(self, nums: List[int], k: int) -> List[float]:
        res = []
        even = k % 2 == 0
        mid = k // 2
        if even:  # 짝수면 두개를 뽑아야 하기 때문
            mid -= 1
        for i in range(len(nums)):
            if i+1 >= k:
                lis = nums[i-k+1:i+1]
                lis.sort()
                if even:
                    res.append(sum(lis[mid:mid+2])/2)
                else:
                    res.append(lis[mid])
        return res