부분합

면접 대비

시간 제한0.5초메모리 제한128 MB

요약
합이 S 이상인 연속 부분열 중 가장 짧은 길이를 구하고, 없으면 0을 출력합니다.
난이도

보통10점 중 4점

유형
슬라이딩 윈도우, 투 포인터, 배열
정답자
아직 제출이 없습니다

문제

길이가 N인 수열이 주어진다. 모든 원소는 10,000 이하의 자연수이다.

이 수열에서 연속한 하나 이상의 원소를 골라 만든 부분합 중 합이 S 이상인 것만 생각한다. 그중 길이가 가장 짧은 부분수열의 길이를 구하라.

입력

첫째 줄에 정수 N과 S가 공백으로 구분되어 주어진다. (10 <= N < 100,000, 0 < S <= 100,000,000)

둘째 줄에 수열의 N개 원소가 공백으로 구분되어 주어진다. 각 원소는 10,000 이하의 자연수이다.

출력

합이 S 이상인 연속 부분수열 중 최소 길이를 출력한다. 그런 부분수열이 없으면 0을 출력한다.

예제1

  1. 예제 1

    입력
    10 15
    5 1 3 5 10 7 4 9 2 8
    
    예상 출력
    2