dh-winternagi 님의 블로그
(1806) 부분합 본문
https://www.acmicpc.net/problem/1806
단계별로 풀어보기
30단계(투 포인터) 3번째
같은 쪽에서 시작하는 투 포인터는 양쪽에서 시작하는 투 포인터에 비해 분기가 많아서 더 어렵다.

#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, S;
cin >> n >> S;
vector<int> v(n);
for(int i=0;i<n;i++) cin >> v[i];
int s= 0, e= 0, acc= v[0], ans= n+1;
while(s<=e){
if(acc>=S){
ans= min(ans, e-s+1);
acc-= v[s++];
}else{
if(e==n-1) break;
acc+= v[++e];
}
}
cout << (ans==n+1 ? 0 : ans);
return 0;
}'백준 (C++) > Solve' 카테고리의 다른 글
| (1450) 냅색문제 (0) | 2026.04.19 |
|---|---|
| (1644) 소수의 연속합 (0) | 2026.04.19 |
| (2470) 두 용액 (0) | 2026.04.19 |
| (3273) 두 수의 합 (0) | 2026.04.19 |
| (1956) 운동 (0) | 2026.04.19 |
