15565 - 귀여운 라이언

2025. 2. 17. 10:32PS/백준

문제

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

느낀점

문제 자체는 기본적인 투 포인터 문제였다. 엣지케이스를 잘 검토해보자

풀이

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int N, K;
    cin >> N >> K;
    vector<int> numList(N);
    for (int i = 0; i < N; i++)
    {
        cin >> numList[i];
    }
    int start = 0, end = 0;
    int lion = 0, cnt = 0;
    int minValue = 10e6;
    while (true)
    {
        if (lion == K)
        {
            minValue = min(minValue, cnt);
            if (numList[start++] == 1)
            {
                lion--;
            }

            if (start >= N)
            {
                break;
            }

            cnt--;
        }
        else
        {
            cnt++;
            if (numList[end++] == 1)
            {
                lion++;
                continue;
            }
            if (end >= N)
            {
                break;
            }
        }
    }
    if (minValue < 10e6)
    {
        cout << minValue;
    }
    else
    {
        cout << -1;
    }

    return 0;
}

'PS > 백준' 카테고리의 다른 글

25916 - 싫은데요  (0) 2025.02.17
20922 - 겹치는 건 싫어  (0) 2025.02.17
2531 - 회전 초밥  (0) 2025.02.15
22857 - 가장 긴 짝수 연속한 부분 수열 (small)  (0) 2025.02.14
2003 - 수들의 합  (0) 2025.02.14