[Algorithm] LeetCode 209. Minimum Size Subarray Sum in Python

하이초·2023년 8월 9일
0

Algorithm

목록 보기
71/94
post-thumbnail
post-custom-banner

💡 LeetCode 209:

부분 배열의 합이 target 보다 크거나 같은 경우 가장 길이가 작은 부분 배열 찾기

🌱 코드 in Python

알고리즘: Sliding Window

class Solution:
    def minSubArrayLen(self, target: int, nums: List[int]) -> int:
        if sum(nums) < target:
            return 0
        
        tmp, left, ans = 0, 0, len(nums)

        for right, n in enumerate(nums):
            tmp += n
            while tmp >= target:
                tmp -= nums[left]
                ans = min(ans, right - left + 1)
                left += 1
                
        return ans

초반에 문제를 풀 때 right가 끝까지 갔을 때 left를 무조건 줄여가며 검사를 했는데
생각해보니 이미 right가 끝까지 간 상태에서 tmp가 이미 target보다 작다면
더이상 탐색이 더 불필요했다.

이런걸 좀 빨리빨리 캐치해내길,,,


🧠 기억하자

  1. 좀 그만 좀 똥멍청이처럼 풀자 ㅠㅠ

LeetCode 209 바로가기

profile
개발국대가 되는 그 날까지. 지금은 개발 응애.
post-custom-banner

0개의 댓글