스코페 2차에서 못풀었던 1번과 유사한 문제. 투 포인터를 이용하면 쉽게 풀리는 문제였다는 걸 깨닫고 투 포인터를 공부해서 풀었다. 한문제도 못풀어서 멘탈이 나갔었는데 아직 공부하지 못한 카테고리라는 걸 알게되니 마음이 한켠 가볍다.
#include <iostream>
using namespace std;
int arr[100000];
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int n, m; cin >> n >> m;
for(int i = 0; i < n; ++i)
cin >> arr[i];
int ans = 1e9, s = 0, e = 0, psum = 0;
while(1){
if(psum >= m) psum -= arr[s++];
else if(e == n) break;
else psum += arr[e++];
if(psum >= m) ans = min(e-s, ans);
}
cout << (ans == 1e9 ? 0 : ans);
}
백준 5549 행성 탐사 혼내주기 (0) | 2021.08.01 |
---|---|
백준 1749 점수따먹기 혼내주기 (0) | 2021.08.01 |
백준 15961 회전 초밥 혼내주기 (0) | 2021.08.01 |
백준 2473 세 용액 혼내주기 (0) | 2021.08.01 |
백준 20181 꿈틀꿈틀 호석 애벌레 - 효율성 혼내주기 (0) | 2021.08.01 |
댓글 영역