209. Minimum Size Subarray Sum
์๋ ์ฝ๋๋ Sliding Window์ ์ฌ์ด์ฆ๋ฅผ ๋๋ ธ๋ค๊ฐ ์ค์๋ค๊ฐ๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ์ต์๊ฐ์ ์ฐพ๋ ์ฝ๋์ด๋ค.
class Solution(object):
def minSubArrayLen(self, target, nums):
# ์ด๊ธฐํ
left, right, current_sum, min_len = 0, 0, 0, float('inf')
while right < len(nums):
# ํ์ฌ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ์ ์
๋ฐ์ดํธ
current_sum += nums[right]
right += 1
# ํฉ์ด ๋ชฉํ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์์ง ๋๊น์ง ์ผ์ชฝ ํฌ์ธํฐ๋ฅผ ์ด๋
while current_sum >= target:
# ์ต์ ๊ธธ์ด ์
๋ฐ์ดํธ
min_len = min(min_len, right - left)
# ํ์ฌ ๋ถ๋ถ ๋ฐฐ์ด์์ ์ผ์ชฝ ์์๋ฅผ ๋นผ๊ณ ์ผ์ชฝ ํฌ์ธํฐ ์ด๋
current_sum -= nums[left]
left += 1
# ์ต์ ๊ธธ์ด๊ฐ ์ด๊ธฐ๊ฐ์ธ ๋ฌดํ๋๋ฉด 0์ ๋ฐํ, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ต์ ๊ธธ์ด ๋ฐํ
return 0 if min_len == float('inf') else min_len