[백준] 1806번 부분 합 (파이썬)

dongEon·2023년 4월 14일
0

난이도 : GOLD IV

문제링크 : https://www.acmicpc.net/problem/1806

문제해결 아이디어

  • 투포인터를 활용해서 푸는 문제이다.

소스코드

import sys

input = sys.stdin.readline

n,m = map(int, input().split())

arr = list(map(int, input().split()))

start = end = 0
_sum = arr[0]
minVal = int(1e9)
while True:
    if _sum >= m:
        minVal = min(minVal, end-start+1)
        _sum -= arr[start]
        start+=1
    else:
        end += 1
        if end >= n:
            break

        _sum += arr[end]
if minVal == int(1e9):
    print(0)
else:
    print(minVal)

profile
반갑습니다! 알고리즘 문제 풀이 정리 블로그 입니다. 피드백은 언제나 환영입니다!

0개의 댓글