1806번 : 부분합
2022. 1. 10. 23:23ㆍ문제풀기/백준
https://www.acmicpc.net/problem/1806
전형적인 투포인터 유형이다.
그동안 투포인터를 양 쪽에서 만나는 방식으로 사용했는데, 같이 출발하는 방식도 있다!
import sys
input = sys.stdin.readline
n,s = map(int,input().rstrip().split())
numbers = list(map(int,input().rstrip().split()))
prefix_sum = [0 for _ in range(n+1)]
for i in range(n):
prefix_sum[i+1] = numbers[i]+prefix_sum[i]
start = 0
end = 0
answer = n+1
check = False
while end<=n:
if prefix_sum[end] - prefix_sum[start] >= s:
if answer > end - start:
answer = end - start
check = True
start += 1
else:
if end == n:
break
else:
end += 1
if check==False:
answer = 0
print(answer)
'문제풀기 > 백준' 카테고리의 다른 글
1005번 : ACM Craft (0) | 2022.01.22 |
---|---|
14179 : 빗물 (0) | 2022.01.04 |
백준 22860번 : 폴더 정리(small) (0) | 2021.10.06 |
백준 14567번 : 선수과목 (Prerequisite) (0) | 2021.10.05 |
백준 1548번 : 부분 삼각 수열 (0) | 2021.10.05 |