백준 25916번 싫은데요

김두현·2023년 1월 21일
1

백준

목록 보기
73/133
post-thumbnail

🔒[문제 url]

https://www.acmicpc.net/problem/25916


🪄전체 코드

#include <iostream>
#include <algorithm>
using namespace std;

int n,m;
int V[500001];

void INPUT()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> n >> m;
    for(int i = 0; i < n; i++) cin >> V[i];
}


void SOLVE()
{
    // Two Pointer
    int start = 0,end = 0;
    int sum = V[0];

    int ans = 0;
    while(end < n)
    {
        if(sum <= m)
        {//막은 구멍의 부피가 m이하라면
            ans = max(ans,sum); //최댓값 갱신 후
            sum += V[++end]; //오른쪽 포인터 옮기기
        }
        else
        {//막은 구멍의 부피가 m보다 클 때
            if(start == end)
            {//양 포인터의 위치가 같다면 둘 다 오른쪽으로 옮긴다.
                start++;
                end++;
                sum = V[start];
            }
            //양 포인터의 위치가 다르다면 왼쪽 포인터 옮기기
            else sum -= V[start++];
        }
    }

    cout << ans;
}

int main()
{
    INPUT();
    SOLVE();
}

🥇문제 후기

GOLD5 미만 난이도는 알고리즘 및 풀이 설명을 주석으로 대체합니다.
주석을 참고해주세요.


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글